我对INotifyPropertyChanged
的PostSharp实施有疑问。 PostSharp在编译后添加了PropertyChangedEventHandler
PropertyChanged
,但我也需要从C#做出反应。
Model a = new Model();
a.PropertyChanged += a_PropertyChanged;
模型实施;
[NotifyPropertyChanged]
internal class Model
{
public string A { get; set; }
public string B { get; set; }
public string C { get { return string.Format("{0} - {1}", A, B); } }
}
我尝试了不同的方法来添加处理程序,但没有成功。有没有办法做到这一点?
答案 0 :(得分:1)
由NotifyPropertyChanged
修饰的类的实例可以在运行时转换为INotifyPropertyChanged
:
((INotifyPropertyChanged)a).PropertyChanged
有一个帮助方法Post.Cast
可以避免"可疑演员"警告:
Post.Cast<Model, INotifyPropertyChanged>(a).PropertyChanged += OnPropertyChanged;