
C#中,实现INotifyPropertyChanged接口问题
我在自己的项目中,定义了很多类,比如说类A,类B...,这些类中已经存在继承关系,每个类都有很多属性。我在窗体空间中绑定了类A生成对象的属性,我要实现属性变化时自动更新U...
我在自己的项目中,定义了很多类,比如说类A,类B...,这些类中已经存在继承关系,每个类都有很多属性。我在窗体空间中绑定了类A生成对象的属性,我要实现属性变化时自动更新UI,就需要实现INotifyPropertyChanged接口,难道我要在每个类中都要去写一遍如下的代码段吗?
public class IMyPropertyChanged : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
public static class IMyPropertyChangedEX
{
public static void NotifyPropertyChanged<T, TProperty>(this T iMyPropertyChanged,
Expression<Func<T, TProperty>> expression) where T : IMyPropertyChanged
{
var memberExpression = expression.Body as MemberExpression;
if (memberExpression != null)
{
string propertyName = memberExpression.Member.Name;
iMyPropertyChanged.NotifyPropertyChanged(propertyName);
}
else
throw new NotImplementedException();
}
} 展开
public class IMyPropertyChanged : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
public static class IMyPropertyChangedEX
{
public static void NotifyPropertyChanged<T, TProperty>(this T iMyPropertyChanged,
Expression<Func<T, TProperty>> expression) where T : IMyPropertyChanged
{
var memberExpression = expression.Body as MemberExpression;
if (memberExpression != null)
{
string propertyName = memberExpression.Member.Name;
iMyPropertyChanged.NotifyPropertyChanged(propertyName);
}
else
throw new NotImplementedException();
}
} 展开
展开全部
如果你这些类继承自同一个根基类的话那么只用在根基类实现该接口就行了啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询