![](/img/trans.png)
[英]C# Datagridview - Turn off AutoGenerateColumns when binding to XML file?
[英]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.