Pat*_*Pat 28 .net aop inotifypropertychanged
我知道有一些解决方案用于实现INotifyPropertyChanged,但它们都不是那么简单:引用这个库,创建/添加这个属性,完成(我在想这里是面向方面的编程).有谁知道一个非常简单的方法来做到这一点?如果解决方案是免费的,奖励积分.
以下是一些相关链接(其中没有一个提供足够简单的答案):
Sim*_*mon 31
试试这个 https://github.com/Fody/PropertyChanged
它将编织实现INotifyPropertyChanged的所有类型属性,甚至可以处理依赖项.
你的守则
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public string GivenNames { get; set; }
public string FamilyName { get; set; }
public string FullName
{
get
{
return string.Format("{0} {1}", GivenNames, FamilyName);
}
}
}
Run Code Online (Sandbox Code Playgroud)
什么被编译
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string givenNames;
public string GivenNames
{
get { return givenNames; }
set
{
if (value != givenNames)
{
givenNames = value;
OnPropertyChanged("GivenNames");
OnPropertyChanged("FullName");
}
}
}
private string familyName;
public string FamilyName
{
get { return familyName; }
set
{
if (value != familyName)
{
familyName = value;
OnPropertyChanged("FamilyName");
OnPropertyChanged("FullName");
}
}
}
public string FullName
{
get
{
return string.Format("{0} {1}", GivenNames, FamilyName);
}
}
public void OnPropertyChanged(string propertyName)
{
var propertyChanged = PropertyChanged;
if (propertyChanged != null)
{
propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用属性进行更精细的控制.
| 归档时间: |
|
| 查看次数: |
17992 次 |
| 最近记录: |