在我的场景中,每次更改属性时,我都要触发OnPropertyChanged事件
是否可以编写自动执行的ViewModel,也可以在属性值发生变化时传递nameof(property)?
提前致谢。
答案 0 :(得分:1)
Fody允许您使用属性连接INotifyPropertyChanged,而不必在每个setter中显式调用它。
[ImplementPropertyChanged]
public class Person
{
public string GivenNames { get; set; }
public string FamilyName { get; set; }
}
答案 1 :(得分:1)
是否可以在不编写代码的情况下触发PropertyChanged
事件? 是虽然您必须使用第三方库来注入名为Fody的呼叫。您可以在https://github.com/Fody/PropertyChanged
如果您愿意编写 little 代码,可以将其放在基类中(C#6用于?。而System.Runtime.CompilerServices
需要CallerMemberName
) :
protected void OnPropertyChanged([CallerMemberName]string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventargs(propertyName));
}
所以在你的财产制定者中你只需要
set
{
backingField = value;
OnPropertyChanged();
}