CollectionViewSource 绑定不适用于 NavigationCacheMode
CollectionViewSource binding doesn't work with NavigationCacheMode
我有一个非常基本的设置:
在我的 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
很好地使用缓存?
在 ViewModel 中尝试
public ObservableCollection<object> Collection {get;set;} = new ObservableCollection<object>();
您也可以尝试使用 Binding 而不是 x:Bind
我有一个非常基本的设置:
在我的 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
很好地使用缓存?
在 ViewModel 中尝试
public ObservableCollection<object> Collection {get;set;} = new ObservableCollection<object>();
您也可以尝试使用 Binding 而不是 x:Bind