在wpf中,我们可以通过继承INotifyPropertyChanged接口实现数据变化时自动推送UI。
#region 属性变化事件
public PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
VerifyPropertyName(propertyName);
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
}
public PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
VerifyPropertyName(propertyName);
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
}
#endregion
并在索引器中调用NotifyPropertyChanged事件。
private String name;
public String Name
{
get { return name; }
set
{
if (value == name)
return;
name = value;
NotifyPropertyChanged("Name");
}
}public String Name
{
get { return name; }
set
{
if (value == name)
return;
name = value;
NotifyPropertyChanged("Name");
}
并可以继承IDataErrorInfo接口实现自定义数据检验,显示实现其属性。
View Code
为了实现代码复用,以ModelBase继承 IDataErrorInfo与INotifyPropertyChanged。
实例代码下载:NotifyProperty.zip