【发布时间】:2015-02-19 12:31:41
【问题描述】:
public interface INotifyPropertyChanged
{
event PropertyChangedEventHandler PropertyChanged;
}
ObservableCollection<T> 实现了这个...
public class ObservableCollection<T> : Collection<T>, INotifyCollectionChanged, INotifyPropertyChanged
{
protected virtual event PropertyChangedEventHandler PropertyChanged;
}
当我测试这个时...
public class Test : INotifyPropertyChanged
{
protected virtual event PropertyChangedEventHandler PropertyChanged;
}
我收到以下错误:
测试没有实现接口成员 'System.ComponentModel.INotifyPropertyChanged.PropertyChanged'。 “Test.PropertyChanged”无法实现接口成员,因为它 不公开。
这怎么可能?
【问题讨论】:
-
这是一个错误的问题,它没有受到保护,它被实现为私有......!
-
@JenishRabadiya 你能详细说明一下吗?
-
PropertyChanged 在 ObservableCollection 中是私有的,只需相应地更新标题和问题。 protected 是不可能的。
-
-
@JenishRabadiya 问题的关键在于确定 ObservableCollection 如何实现 INotifyPropertyChanged。当我看到受保护的虚拟成员时,我很困惑,但是如果您阅读了接受的答案 - 这就是我想要的。
标签: c# .net interface observablecollection inotifypropertychanged