Modificare il controllo TreeView

Marco Leoncini

di , in asp.net,

Durante la gestazione dell'ultimo articolo tra la difficoltà emerse, una inerente il nuovo controllo TreeView per SL mi ha particolarmente infastidito.

Cliccate nel TreeView ma in un area vuota, vedrete come per magia che il TreeView perde la selezione attuale in favore del primo elemento.

Onestamente un comportamento fastidioso quanto indesiderato.

Questo comportamento trova riscontro in un Bug segnalato nell'apposito spazio su Codeplex e sembra sia stato risolto.

in attesa che sia pubblicato il nuovo codice sorgente, ecco la mia soluzione per evitare quel comportamento.

per prima cosa apriamo il file TreeViewItem.cs navigamo al metodo OnGotFocus e sostituiamo tutto con :

protected override void OnGotFocus(RoutedEventArgs e) { base.OnGotFocus(e); } 

ed eseguiamo l'override del metodo OnMouseLeftButtonDown:

protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) 
{ 
Select(true); // Activate the selection 
IsSelectionActive = true; 
UpdateVisualState(true);
 } 

personalmente non ho capito e non ho codiviso la scelta di impostare la selezione ogni volta che il TreeView o meglio un TreeViewItem riceve il focus.

sono curioso e attendo la soluzione che verrà da CodePlex.

Commenti
Modificare il controllo TreeView

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Collegamenti sponsorizzati

Nella stessa categoria
I più letti del mese