在WPF中使用非依赖属性作为数据源绑定时,为了达到数据驱动的效果,需要实现INotifyPropertyChanged接口。
该接口提供了事件:
event PropertyChangedEventHandler PropertyChanged;
调用该事件时需要给其提供包含调用属性的属性名,此时可使用CallerMemberName特性自动提供,减少重复的工作。
class Program
{
static void Main(string[] args)
{
Program p = new Program();
Console.WriteLine(p.Age);
p.Age = 12;
Console.WriteLine(p.Age);
Console.WriteLine("输出完成");
Console.ReadKey();
}
private int _age = 0;
public int Age
{
get
{
return _age;
}
set
{
_age = value;
InvokeObject();
}
}
//注意事项: 特性应用于 CallerMemberName 具有默认值的可选参数。 必须为可选参数指定显式默认值。 //不能将此属性应用于未指定为可选参数。
void InvokeObject([System.Runtime.CompilerServices.CallerMemberNameAttribute]string member="")
{
Console.WriteLine($"调用者:{member}");
}
}
效果: