2011-08-17 3 views
1

J'ai une liste qui peut être éditée. Une fois qu'un élément de cette liste est édité et enregistré, l'élément nouvellement édité est affiché dans la liste mais sa position change. Je veux pouvoir sélectionner ou mettre en surbrillance cet élément même après avoir changé de position. Je peux obtenir son nouvel index mais je n'arrivais pas à trouver un moyen d'avoir re-sélectionné programitcally après ses changements de psoiton dans la liste!Comment sélectionner un élément dans une liste par programme en utilisant son index en utilisant C#

Toute aide serait ici grandement apprécié Merci

+0

Avez-vous essayé de sélectionner l'élément en définissant les propriétés 'ListBox.SelectedItem' ou' ListBox.SelectedIndex'? – Stephan

+0

Oui. Cela fonctionne maintenant :) – PuZZled

Répondre

2
ListBox.SelectedIndex = newPosition; 

ou

ListBox.SelectedIndices.Add(newPosition); 

avec un SelectedIndices.Clear en option() avant si vous voulez juste que votre article soit sélectionné.

+0

Merci pour votre suggestion. Je ne sais pas pourquoi j'ai oublié ça! Je suis encore nouveau dans tout ça! – PuZZled

+1

'SelectedIndices' n'existe pas sur' ListBox'es WPF. – Cameron

0

Je suppose que l'itemsource est une sorte de collection. pourquoi vous n'utilisez pas la propriété SelectedItem avec Mode = TwoWay pour sélectionner l'élément que vous voulez de votre code C#?

<ListBox ItemsSource="{Binding Path=YourItemsCollection}" 
     SelectedItem="{Binding Path=MySelectedItem, Mode=TwoWay}" /> 

Une autre façon est d'utiliser la méthode de ICollectionView MoveCurrentTo. tout ce que vous avez à faire est de créer un ICollectionView avec CollectionViewSource.GetDefaultView (this.YourItemsCollection). Si vous prenez cette option, vous n'avez pas besoin de vous lier à SelectedItem, mais vous devez définir IsSynchronizedWithCurrentItem = true pour votre listbox.

+0

Merci pour votre réponse. Je viens de suivre les suggestions de Vladimir et les choses fonctionnent :) – PuZZled

+0

np :) depuis la liaison mvvm et wpf je n'ai plus utilisé l'index;) – blindmeis

Questions connexes