如何使用 ReactiveObject 作为我的 viewModel 的基础 class 进行数据验证

How to use data validation with ReactiveObject as a base class of my viewModel

我正在尝试在 WPF 项目中使用 IDataErrorInfo 实现,其视图模型使用 ReactiveObject。

UpdateSourceTrigger=PropertyChanged 似乎不会触发数据验证(我尝试使用经典的 NotifyPropertyChangedBase 而不是 ReactiveObject,它工作正常)。

我发现的可能解决方案因 reactiveUI 的版本而异,我使用的是 8.3.1,目前 none 似乎可行。文档只是 link 一个项目,它似乎完成了验证的完整实现,它有很多依赖关系并且没有得到适当的许可,我认为我不能使用它。

有没有标准的方法来实现它?

实现 INotifyDataErrorInfo 接口并在您想要触发验证时引发 ErrorsChanged 事件:

if (ErrorsChanged != null)
    ErrorsChanged(this, new DataErrorsChangedEventArgs("PropertyName"));

有关详细信息和示例,请参阅以下 MSDN 文章。

WPF 4.5: Validating Data in Using the INotifyDataErrorInfo Interface