Lassen ListView scrollen, um ausgewählte Element

Habe ich ein WinRT, C#/XAML-app mit einer Ansicht, die eine vertikale ListView-Elemente. Abhängig von der Anzahl der Elemente der ListView zeigt eine vertikale Bildlaufleiste. Hier ist der XAML-definition:

<UserControl.Resources>
    <CollectionViewSource
        x:Name="myViewSource"
        Source="{Binding myViewModel.Items}" />
</UserControl.Resources>
...
<ListView
    x:Name="myListView"
    ItemsSource="{Binding Source={StaticResource myViewSource}}"
    SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
</ListView>

Nun jedes mal wenn ich navigieren Sie zu dieser Ansicht, wird das ausgewählte Element der ListView wird gewählt durch die Einstellung der Datenbindung SelectedItem-Eigenschaft in der Ansicht Modell von code behind (OnNavigatedTo). Mein problem: die ListView nicht automatisch scrollen, um das ausgewählte Element. Die scrollbar bleibt an der Spitze der ListView und der Benutzer muss scrollen Sie manuell finden Sie das ausgewählte Element.

Habe ich versucht auszuführen myListView.ScrollIntoView(MyViewModel.SelectedItem); nach der Einstellung der SelectedItem in der code-behind (in OnNavigatedTo), aber es funktioniert nicht. Die scrollbar bleibt an der Spitze.

Ich bin mir bewusst, dass dieser thread auf SO: Blättern WinRT ListView bestimmten Gruppe .
Dies scheint ein ähnliches problem. Aber wenn ich zu Fuß die visuelle Struktur des ListView-manuell oder mit WinRT XAML Toolkit, es findet kein ScrollViewer (gibt null zurück, statt).

  • Warten Sie auf das ListView-Steuerelement zu laden (werden Hinzugefügt, um die visuelle Struktur), bevor Sie versuchen zu scrollen?
  • Ich rufe ScrollIntoView() in OnNavigatedTo(). Ich dachte, hier wäre der richtige Ort und die ListView soll geladen wurden. Oder kann ich falsch sein?
  • Ich denke, OnNavigatedTo-Auftritt, bevor das Steuerelement geladen wird...
InformationsquelleAutor Matthias | 2012-08-24
Schreibe einen Kommentar