簡體   English   中英

打開和關閉綁定

[英]Turn the binding on and off

假設您有一個帶有ObservableCollection(OC)的ViewModel,該模型綁定到View內的某些控件。

有沒有一種方法可以在不刪除綁定的情況下臨時禁用OC和控件之間的綁定? 我希望能夠在不通知View的情況下修改我的ObservableCollection。

這樣做的原因很簡單:我在OC上做了很多Add()和Insert()操作。 在大多數情況下,一切正常,但有時我經常調用Add(),以至於視圖中的更新看起來不愉快。 在這些時間段內,我想先“關閉”裝訂,然后再“打開”裝訂。

是否有人處於類似情況/有人給小費嗎?

只需包裝ObservableCollection (甚至繼承自ObservableCollection ),然后通過添加自定義邏輯來覆蓋mthod OnCollectionChanged ,這將考慮您的要求推遲事件觸發,我相信這是實現自己的可觀觀察性集合的相當標准的方法。

當集合中有很多項目時,我更喜歡使用List <>作為CollectionViewSource的源。 然后,視圖綁定到CollectionViewSource.View。 CollectionViewSource具有DeferRefresh()和Refresh()方法,使您無需更改通知即可完成更改源列表的所有后台工作。 CollectionViewSource的性能比ObservableCollection更好,並且它支持過濾。 如果您要不斷添加和刪除項目,則可能需要過濾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM