日期:2014-05-17  浏览次数:20935 次

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动作,只是在初始化的时候才有,那也不用实现它。只有在绑定后,可以被用户任意更改的情况下,才需要实现它。