如果我有一个像下面这样的课程:
public class MyClass : INotifyPropertyChanged
{
private BindingList<String> myList;
public BindingList<String> MyList
{
get { return myList; }
set
{
if (myList == value) return;
myList = value;
OnPropertyChanged("MyList");
}
}
}
我是否需要设置以下事件处理程序:
myList.ListChanged += (object sender, ListChangedEventArgs e) => OnPropertyChanged("MyList");
还是检测到?我知道BindingList类将在它的模板化类型上查找INotifyPropertyChanged接口,以便它可以确定是否应引发ListChanged事件,但是我不确定它是否可以以其他方式起作用。
最佳答案
您的myList
字段封装在您的类中-它所做的任何事情都不会自动“冒泡”。除非您使用编写的事件处理程序将它们传播出去,否则绑定到您的类实例的内容将不会知道myList
中的更改。但是,绑定到MyList
属性的事物将直接引用BindingList
对象,因此它们将看到myList
引发的通知。
关于c# - INotifyPropertyChanged和BindingList ListChanged事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13279186/