J'essaie d'implémenter le modèle MVVM dans WPF. J'ai suivi le Very simple MVVM demo application de Jeremy Alles. J'ai un ListBox qui a une liaison à un ObservableCollection:La barre de défilement Listbox ne suit pas l'élément sélectionné (avec ICollectionView)
<ListBox
Name="myListBox"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Persons}">
<ListBox.ItemTemplate>
<DataTemplate>
<views:PersonsView />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
J'ai ajouté une ICollectionView pour gérer l'élément sélectionné sur la zone de liste. Cela me permet également d'avoir deux boutons qui me permettent de sélectionner les éléments précédents et suivants dans la liste.
private void GoToPrevious()
{
this.collectionView.MoveCurrentToPrevious();
}
private void GoToNext()
{
this.collectionView.MoveCurrentToNext();
}
Tout fonctionne très bien, cependant, lorsque l'élément sélectionné est en dessous de la zone affichée de la zone de liste, la barre de défilement de la zone de liste ne se déplace pas en conséquence.
Comment synchroniser la barre de défilement/la zone d'affichage de la ListBox avec l'élément sélectionné?