CollectionViewSource绑定不适用于NavigationCacheMode

时间:2017-02-23 16:39:32

标签: c# xaml listview uwp collectionviewsource

我有一个非常基本的设置:

在我的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很好地使用缓存?

1 个答案:

答案 0 :(得分:2)

尝试使用ViewModel

public ObservableCollection<object> Collection {get;set;} = new ObservableCollection<object>();

您也可以尝试使用Binding而不是x:Bind