Modificare il controllo TreeView

di Marco Leoncini, 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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

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

Nella stessa categoria
I più letti del mese