2017-02-23 93 views
1

工作,我有一個非常基本的設置:CollectionViewSource綁定不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引入的一個問題,因爲如果我將我的ListViewItemsSource直接綁定到Collection,它完美地工作。

有什麼辦法可以讓CollectionViewSource與緩存一起玩嗎?

回答

1

嘗試在視圖模型

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

您也可以嘗試使用未綁定X:綁定

+0

呵呵。使用'Binding'而不是'x:Bind'修復它。謝謝! – RareNCool

+0

@RareNCool問題不在於* Binding/x:綁定* - 兩者都可以正常工作。你的原始代碼在你的集合中缺少'{get; set;}',正如MSDN所說 - 你只能綁定到屬性。 – Romasz

+0

@Romasz不,我還沒有'{get;組; }'就可以了,而且''Binding''而不是'x:Bind'就可以正常工作。我也嘗試添加'{get;組; }'並使用'x:Bind',它不起作用。 – RareNCool

相關問題