WPF MVVM:Notify属性在每次更改某个其他属性时更改了一个属性

时间:2011-02-20 13:58:03

标签: wpf inheritance mvvm inotifypropertychanged

我有一个ViewModelBase类,我为INotifyPropertyChanged接口定义了RaisePropertyChanged方法。大多数MVVM人都非常熟悉这一点。

我还有一个继承自ViewModelBase的Validating ViewModel。它实现了一个接口和一些方法来验证它的属性。它有一个IsValid属性,它只是一个检查是否存在任何规则违规的getter。但是,如果我不想在视图中绑定到此属性,则必须在某个时间更新。这基本上是每次更改某些其他属性,或者至少是我验证的属性。一个简单的解决方案是在RaisePropertyChanged方法中仅通知IsValid,但它在ViewModelBase中定义,其中尚未定义IsValid。

你们中的任何一个人都能解决这个困境吗?

1 个答案:

答案 0 :(得分:3)

如果您遵循标准事件处理模式,则RaisePropertyChanged方法将被标记为virtual(它应该是protected virtual方法),因此您将能够在验证视图模型中覆盖该方法,调用基础实现,然后为PropertyChanged属性调用IsValid事件。

我不太确定你在做什么,但如果是一般性验证,你最好使用像DataAnnotations这样的框架。