ValidatableBindableBase 没有在 Prism.Wpf 中实现吗?为什么?

Is ValidatableBindableBase not implemented in Prism.Wpf? why?

试图合并 ValidatableBindableBase 以便于验证实施,我注意到它在 Prism.Wpf 中不可用。

它在 Prism.Windows(Windows 10 UWP)中可用,但是...

我会不会错过了它(那它在哪里)?

还是WPF中真的没有实现(那为什么呢)?

Prism.Wpf 中的验证是通过实现 IDataErrorInfoINotifyDataErrorInfo 接口完成的。一个例子:

public abstract class DomainObject : INotifyPropertyChanged, INotifyDataErrorInfo
{
    private ErrorsContainer<ValidationResult> errorsContainer =
                    new ErrorsContainer<ValidationResult>(
                       pn => this.RaiseErrorsChanged( pn ) );

    public event EventHandler<DataErrorsChangedEventArgs> ErrorsChanged;

    public bool HasErrors
    {
        get { return this.ErrorsContainer.HasErrors; }
    }

    public IEnumerable GetErrors( string propertyName )
    {
        return this.errorsContainer.GetErrors( propertyName );
    }

    protected void RaiseErrorsChanged( string propertyName )
    {
        var handler = this.ErrorsChanged;
        if (handler != null)
        {
            handler(this, new DataErrorsChangedEventArgs(propertyName) );
        }
    }
   ...
}

Prism的documentation中也有说明

那么为什么 UWP 不能那样工作?因为在 UWP 上您无权访问这些接口,因此需要 ValidatableBindableBaseBindableValidator 类。如果出于某种原因,您喜欢这种方法,没有什么能阻止您采用 UWP 类 并将它们带到您的 WPF 解决方案中,所有代码都是 open source.