Sélection par programme des éléments / index dans un contrôle ListBox
Dans WPF, j'aimerais sélectionnez l'index d'un Système.De Windows.Les contrôles.ListBox
J'meilleur moyen que j'ai trouvé jusqu'à présent est de supprimer tous les éléments de la commande, insérer la, appel SelectAll(), puis insérez le reste, mais cette solution ni dans ma situation n'est ni très efficace.
Alors, comment pouvez-vous définir les éléments d'une liste pour être sélectionné, par programmation?
source d'informationauteur Alex | 2009-05-06
Vous devez vous connecter pour publier un commentaire.
Une façon vous pouvez faire est d'ajouter un champ Sélectionné à votre objet de données. Ensuite, vous devez annuler le défaut listboxitem de style et de lier la propriété isselected à la propriété Sélectionnée dans votre objet. Ensuite, vous avez juste besoin d'aller à travers vos éléments de données et mise à jour de la valeur Sélectionnée.
Si vous n'avez pas l'œuvre de la propriété Sélectionnée comme une dépendance de la propriété, vous avez besoin de votre classe à la mis en oeuvre l'interface INotifyPropertyChanged et déclencher l'événement propertychanged lorsque vous définissez la valeur.
Vous pouvez définir plusieurs éléments sélectionnés à l'aide de la collection SelectedItems. Ce n'est pas par l'index, mais par ce que vous avez lié:
procédure de programmation pour sélectionner plusieurs éléments dans la zone de liste dans wpf
Vous avez à faire cela:
Où itemIndex serait l'élément que vous souhaitez sélectionner.
Si vous voulez sélectionner plusieurs éléments, vous devez utiliser la zone de liste.SelectedIndexCollection propriété.
Grâce à mdm20.
Mon cas était effectivement le contrôle d'un
CheckBox
dans leListBox
, et cette Propriété de Dépendance a travaillé comme un charme.J'ai dû hériter de ma classe personnalisée de
DependencyObject
et de mettre en œuvre la propriétéVous pouvez faire cela pendant plusieurs sections:
Où i est l'index de l'élément.