上午学习Silverlight和MVVM,在双向绑定中有一个问题,就是要实现双向绑定的类必须实现接口INotifyPropertyChanged。我有点疑惑的是在方法中直接写了接口INotifyPropertyChanged的实现方法,不声明继承自接口INotifyPropertyChanged。为什么不可以?
就像下面这不可以,
public class BaseNotify
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
声明继承后可以
public class BaseNotify : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
小菜求大神指教。。。
属性改变要让对方知道自然需要一个通知消息出来吧,而INotifyPropertyChanged简单说就相等于一个委托通道,就是负责这个消息的通知,你可以了解下观察者模式
这很简单啊,因为调用方通过基类型(INotifyPropertyChanged)来订阅或激发事件。
这一块不是很明白,有没有示例的链接或者是教程的发一个。。
@粗线条: 你去翻 WPF 的源码吧!
不实现接口INotifyPropertyChanged,其他类怎么知道你实现了INotifyPropertyChanged方法??