簡體   English   中英

是否有一個不訂閱INotifyPropertyChanged的集合?

[英]Is there a collection that doesn't subscribe to INotifyPropertyChanged?

我有一個使用INotifyPropertyChanged的類,並且有一個綁定到網格的列表。 每次對象更改時,它都會更新網格中的值。 但是由於歷史原因,我想將該對象添加到集合/列表中並綁定到歷史網格以顯示所有更改。 但是,我嘗試過的每個列表似乎都訂閱了INotifyPropertyChanged因此我在歷史記錄網格中只能得到相同數量的項目。

是否存在不訂閱INotifyPropertyChanged的列表/集合?

謝謝

如果您的列表是對類的引用的列表,則您需要對整個列表進行“深度克隆”,以維護歷史副本。 否則,列表內容的副本仍將引用要更改的“活動”對象。 這樣做將需要如下代碼:

// This requires a way to "Clone" your object...
List<YourClass> listCopy = originalList.Select(item => item.Clone()).ToList();

如果列表包含值類型(結構),則只需創建一個新的List<YourType>並復制原始元素即可。

// If your type is a value type, you can just copy the list directly...
var listCopy = originalList.ToList();

另外-這與INotifyPropertyChanged沒有關系。 列表本身對PropertyChanged事件不起作用。

考慮在綁定中使用Mode=OneTime http://msdn.microsoft.com/en-us/magazine/cc163299.aspx#S3

暫無
暫無

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

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