Ich versuche, das MVVM-Muster in WPF zu implementieren. Ich bin Jeremy Alles's Very simple MVVM demo application gefolgt. Ich habe eine ListBox, die eine Bindung an ein ObservableCollection hat:ListBox Bildlaufleiste folgt nicht ausgewählten Element (mit ICollectionView)
<ListBox
Name="myListBox"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Persons}">
<ListBox.ItemTemplate>
<DataTemplate>
<views:PersonsView />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Ich habe ein ICollectionView das ausgewählte Element auf der List-Box zu verwalten. Es erlaubt mir auch, zwei Knöpfe zu haben, mit denen ich die vorherigen und nächsten Einträge in der Liste auswählen kann.
private void GoToPrevious()
{
this.collectionView.MoveCurrentToPrevious();
}
private void GoToNext()
{
this.collectionView.MoveCurrentToNext();
}
alles funktionieren großartig, aber wenn das ausgewählte Element unter dem angezeigten Bereich des listbox ist, werden die Listbox der Scrollbar nicht entsprechend bewegen.
Wie kann ich die Bildlaufleiste/den Anzeigebereich der ListBox mit dem ausgewählten Element synchronisieren?