【发布时间】:2014-04-15 05:29:04
【问题描述】:
我目前正在使用 WPF 并实现派生 INotifyPropertyChanged 的模型相关类。我发现声明一些辅助方法非常有用。所以我想自动添加这些辅助方法:
public static class INotifyPropertyChangedHelper
{
static void notifyPropertyChanged(this INotifyPropertyChanged propertyChanged, string PropertyName = "")
{
// errors here
propertyChanged.PropertyChanged(propertyChanged, new PropertyChangedEventArgs(PropertyName));
}
static bool setField<T>(this INotifyPropertyChanged propertyChanged, ref T field, T value, [CallerMemberName]string propertyName = "")
{
if (EqualityComparer<T>.Default.Equals(field, value)) return false;
field = value;
propertyChanged.notifyPropertyChanged(propertyName);
return true;
}
}
给我一个编译器错误
事件'System.ComponentModel.INotifyPropertyChanged.PropertyChanged'只能 出现在 += 或 -=" 的左侧,因为 PropertyChanged 是一个事件。
有没有优雅的方法来解决这个问题?
【问题讨论】:
-
这个答案可能对你有帮助:stackoverflow.com/a/4925143/2609288