我有一个非常基本的设置:
在我的ViewModel中:
public ObservableCollection<object> Collection = new ObservableCollection<object>();
在我的XAML中:
<Page NavigationCacheMode="Enabled"
...>
...
<CollectionViewSource x:Name="CVS"
x:Key="CVS"
Source="{x:Bind ViewModel.Collection, Mode=OneWay}" />
<ListView ItemsSource="{Binding Source={StaticResource CVS}, Mode=OneWay}">
...
</ListView>
</Page>
问题是,当我离开然后返回页面时,项目列表会刷新并且滚动位置会丢失。这绝对是CollectionViewSource
引入的问题,因为如果我将ListView
ItemsSource
直接绑定到Collection
,它就能完美运行。
有没有办法让CollectionViewSource
很好地使用缓存?
答案 0 :(得分:2)
尝试使用ViewModel
public ObservableCollection<object> Collection {get;set;} = new ObservableCollection<object>();
您也可以尝试使用Binding而不是x:Bind