【发布时间】:2011-06-30 18:09:32
【问题描述】:
我有一个 ViewModelBase 类,我在其中为 INotifyPropertyChanged 接口定义了 RaisePropertyChanged 方法。大多数 MVVM 人员都对此非常熟悉。
我还有一个继承自 ViewModelBase 的 Validating ViewModel。它实现了一个接口和一些方法来验证它的属性。它有一个 IsValid 属性,它是唯一一个检查是否存在任何违反规则的 getter。但是,如果我不想在视图中绑定到此属性,则必须在某个时间进行更新。这基本上是每次更改其他一些属性时,或者至少是我验证的属性。一种简单的解决方案是仅在 RaisePropertyChanged 方法内通知 IsValid,但它是在未定义 IsValid 的 ViewModelBase 中定义的。
你们中的任何人都有解决这个困境的好方法吗?
【问题讨论】:
-
你不能在你的验证视图模型类中覆盖你的 RaisePropertyChanged 吗?在那个被覆盖的方法中,你可以通知 IsValid
-
是的,我想我可以做到。这很简单,我没有注意到。我想我也可以在 OnRaiseProperty() 那里调用一个虚拟方法,然后如果我想在继承的类中使用它。
标签: wpf inheritance mvvm inotifypropertychanged