ListView 不记得 SelectedItems

ListView don't remember SelectedItems

我有一个带有 SelectionMode="Multiple"ListView,如果我更改页面然后导航回带有 ListView 的页面,则没有选定的项目,每个项目都显示为取消选择.

我已经尝试扩展 ListView,这是我的代码:

    public class MultiSelectionListView : ListView
    {
        protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
        {
            var myModel = item as MyModel;

            var lvElement = element as ListViewItem;
            lvElement.IsSelected = myModel.IsSelected;

            base.PrepareContainerForItemOverride(lvElement, item);
        }
    }

这是我的列表视图

<Controls:MyListView SelectionMode="Multiple"
    ItemsSource="{Binding ListItems}" 
    ItemTemplate="{StaticResource MyItemTemplate}" 
    ItemContainerStyle="{StaticResource MyListViewItemStyle}" />

但即使这样做也行不通。

我很确定我做错了什么,但我不明白我做错了什么。

将页面的 NavigationCacheMode 属性 设置为 Required .. 这将缓存您的文本输入、列出所选项目等。:)

了解更多信息:

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.page.navigationcachemode