WPF,一个集合通常不会实现属性更改通知的吗?
一个类的继承自INotifyPropertyChanged ,就会实现属性更改通知功能,
使用ObservableCollection可以实现添加项、移除项或刷新整个列表时,此集合将提供通知
那有没有这种写法呢?
public ObservableCollection<Person> People
{
get { return People; }
set
{
People = value;
OnPropertyChanged("People");
}
}
People也实现属性更改通知,这个有意义吗?
------解决方案--------------------如果某个控件的itemsource=People,你这样写是没用的。直接赋值就可以绑定了。
如果你的某个控件 itemsource={Binding People},这样写是必要的。
------解决方案--------------------一般是要实现的,因为你总有编辑People的情况吧。而不仅仅是留在集合的层面。
------解决方案--------------------通知是针对UI的,如果你设计的类型不用在UI的绑定上面,就不需要实现它,如果要用在UI绑定上面,但是绑定之后不会有Set动作,只是在初始化的时候才有,那也不用实现它。只有在绑定后,可以被用户任意更改的情况下,才需要实现它。