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