Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
11 juin 2011 6 11 /06 /juin /2011 19:33

Pour sélectionner un Item dans une ListBox il suffit de cliquer dessus, mais pour le désélectionner il faut appuyer sur la touche Ctrl puis cliquer.

Ce comportement n’est pas forcément intuitif pour un utilisateur lambda. C’est comme si vous deviez appuyer sur la touche Ctrl pour décocher un CheckBox. Ce n’est pas très logique et pratique.

 

Voici le code qui permet de désélectionner un Item simplement en recliquant dessus :

 

 Private Sub maListBox_PreviewMouseDown(sender As Object, e As System.Windows.Input.MouseButtonEventArgs) Handles maListBox.PreviewMouseDown 
 Dim dep As DependencyObject = DirectCast(e.OriginalSource, DependencyObject) 
 
 While (dep IsNot Nothing) AndAlso Not (TypeOf dep Is ListBoxItem) 
 dep = VisualTreeHelper.GetParent(dep) 
 End While 
 
 If dep Is Nothing Then 
 Return 
 End If 
 
 Dim item As ListBoxItem = DirectCast(dep, ListBoxItem) 
 
 If item.IsSelected Then 
 item.IsSelected = Not item.IsSelected 
 e.Handled = True 
 End If 
 
 End Sub 

Partager cet article

Repost 0
Published by Cyril - dans WPF
commenter cet article

commentaires