【发布时间】:2014-08-13 23:01:47
【问题描述】:
在我的 WPF 应用程序中,我的 Model 类继承自 ParentClass 类:
Model : ParentClass, INotifyPropertyChanged
我的应用程序只是为了提供一个 UI 来测试和验证ParentClass。所以Model 真的只不过是覆盖在ParentClass 上的INotifyPropertyChanged 实现
但是我仍然需要从该父类访问数据并让它响应 UI。
假设Slicing 是ParentClass 中的属性,WPFSlicing 是Model 中的属性,这就是我目前的做法。我将每个父属性包装在与 WPF 兼容的属性中。
public Thickness WPFSlicing
{
get { return Slicing; }
set
{
Slicing = value;
OnPropertyChanged("Slicing");
}
}
有没有更聪明的方法来做到这一点?我的父类中有很多属性,这似乎是一个非常平庸的方法。
【问题讨论】:
-
是的,您需要为每个 setter 调用 OnPropertyChanged("propertyName") :(
-
看来你对View、Model和ViewModel没有很好的分离。也许您可以编辑您的问题以显示您的哪些类对应于 MVVM 域。
-
在模型中实现INotifyPropertyChanged不常见吗?
-
您将需要它。但也许你正在寻找这个。 msdn.microsoft.com/en-us/library/ms165394.aspx
-
如果您的 VS 版本支持宏(或 Macro Alternatives),我发现只记录一个宏会为我写出所有属性更改内容是最快的。如果你有兴趣,我有一个例子here。
标签: c# wpf mvvm inotifypropertychanged