C# 如何导航到ListBox Windows Phone 8.1上的特定位置

C# 如何导航到ListBox Windows Phone 8.1上的特定位置,c#,windows-phone-8.1,C#,Windows Phone 8.1,我有一个包含很多项目的列表框,当单击每个项目时,转到一个新页面,我想要的是当我从第二个页面返回时,保持在单击项目的相同位置 这是我的名单 <ListBox x:Name="list" Loaded="ListView_Loaded" SelectedItem="true" SelectionChanged="searchResultsList_SelectionChanged" ItemsSource="{Binding}" Background="{x:Null}">

我有一个包含很多项目的列表框,当单击每个项目时,转到一个新页面,我想要的是当我从第二个页面返回时,保持在单击项目的相同位置

这是我的名单

<ListBox x:Name="list" Loaded="ListView_Loaded" SelectedItem="true"  SelectionChanged="searchResultsList_SelectionChanged" ItemsSource="{Binding}" Background="{x:Null}">
                                    <!--<ListView.ItemContainerStyle>
                                        <Style TargetType="ListViewItem">
                                            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                                            <Setter Property="Margin" Value="0,0,0,15" />
                                        </Style>
                                    </ListView.ItemContainerStyle>-->
                                    <ListBox.ItemTemplate>
                                        <DataTemplate>
                                            <Grid>
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="80" />
                                                    <ColumnDefinition Width="10" />
                                                    <ColumnDefinition Width="*" />
                                                </Grid.ColumnDefinitions>

                                                <Border Width="80" Height="80">
                                                    <Image Source="{Binding Caminho}" />
                                                </Border>

                                                <StackPanel Margin="0,16,0,0" Grid.Column="2">
                                                    <TextBlock Foreground="White" Text="{Binding NomeCurso}" TextWrapping="Wrap" FontSize="{StaticResource TextStyleExtraLargeFontSize}" />

                                                </StackPanel>
                                            </Grid>
                                        </DataTemplate>
                                    </ListBox.ItemTemplate>
                                </ListBox>


谢谢

如果您正在使用WinRT,您可以在页面构造函数中编写以下代码来缓存它,这样在返回此页面后位置将保持不变:

this.NavigationCacheMode = NavigationCacheMode.Required;
从您的示例中,我看不出您是否正在使用
ListBox
ListView
,我将假定
ListView
更好,因为
ListBox
不再需要了


我还注意到的一件事是,您对
项目资源使用了一个简单的
{Binding}
,因此每次返回时,它都会被重置(如果您正在执行此操作,因为这在示例代码中不可见)。我总是有一个类型为
observetecollection
的附加属性,并绑定到它,例如
ItemsSource={Binding MyItems}
。这样,只有当我重置属性
MyItems

时列表才会重置,所以我需要做的是创建一个ObservableCollection并添加我的所有内容,然后使用datacontext将项目绑定到列表?这是一个列表框!谢谢@克里斯蒂安·武库西奇