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将项目绑定到列表?这是一个列表框!谢谢@克里斯蒂安·武库西奇