簡體   English   中英

為什么ObservableCollection會隱藏INotifyPropertyChanged.PropertyChanged

[英]Why does ObservableCollection hide INotifyPropertyChanged.PropertyChanged

我有一個派生自ObservableCollection的類。 我想為這個類添加一些屬性(不是集合中的項),但發現它的PropertyChanged實現受到保護。 由於它受到保護,我認為這就是為什么我在XAML中綁定到這些新屬性的嘗試失敗了。

如果沒有創建一個掛起這個實現INotifyPropertyChanged並包含這些新屬性的類的對象,那么有什么方法可以忽略它?

如果類實際實現了接口但是明確地實現了接口修飾符並且將訪問修飾符放在具體實現上,那么您需要做的就是在接口本身的上下文中獲取該對象並且可以使用它。 例如..

ObservableCollection collection;

collection.PropertyChanged += ...;

這可能會失敗,因為它的PropertyChanged實現受到保護。 但是,你可以這樣做:

ObservableCollection collection;

INotifyPropertyChanged iproperty = collection;

iproperty.PropertyChanged += ...;

這應該有效,因為您將對象作為接口的實例處理,而不是僅通過類定義訪問接口成員。

我沒有做過任何WPF,所以我不知道ObservableCollection實際上實現了INotifyPropertyChanged ,但如果確實如此,那么這應該可行。

ObservableCollection確實實現了INotifyPropertyChanged, http://msdn.microsoft.com/en-us/library/bb460458.aspx ,但是......

我似乎很快就發布了這個問題,我的測試應用程序挑戰我的假設。

暫無
暫無

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

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