我在Xamarin.Forms中有一個項目,其中包含一個綁定到ObservableCollection的listView。Xamarin.Forms緩存策略列表視圖recycle元素不會刷新可見元素
listView包含單元格,每個單元格都有一個標籤和一個開關。我在該列表上方有兩個按鈕:全選&取消選擇全部。這些按鈕應該相應地切換所有的開關(並希望更新開關的UI狀態):選擇所有應刷新我的listView與所有開關打開和取消選擇所有應刷新我的listView與所有開關關閉。
我還在該列表中設置了「回收元素」的緩存策略。當我點擊'Select all'或'Unselect all'按鈕時,listView的上半部分(在屏幕上可見)不會刷新但是當我向下滾動listView時,由於緩存策略的原因,新生成的單元格將被更新,因爲它們是新的。同樣,當我回滾時,舊的細胞也被刷新,因爲它們被回收。
如何在我的listView中刷新開關狀態沒有滾動它?
非常感謝提前。
感謝您的答案,但問題發生在這兩個平臺。我已經嘗試禁用Recycle元素,但列表仍然不刷新AND很慢:/。 – Niky
我找到了解決方法,我禁用了recycle元素,並使用此方法刷新了我自己的ObservableCollection擴展類上的列表。 'public void AddAndRemoveItem(T item) { this.Items.Add(item); this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); this.Items.Remove(item); this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); }' – Niky
@allister Dude !!!我花了很多時間試圖解決這個問題。 –