最新的 MvvmValidation 包中缺少 DataErrorInfoAdapter

Missing DataErrorInfoAdapter in latest MvvmValidation package

更新 MvvmValidation NuGet package from version 2.0.2 to 3.1.0 后,出现错误:

The type or namespace name 'DataErrorInfoAdapter' could not be found (are you missing a using directive or an assembly reference?)

我的 ValidatableViewModelBase.cs 看起来像这样:

public abstract class ValidatableViewModelBase : ViewModelBase, IDataErrorInfo
{
    public ValidationHelper Validator { get; } = new ValidationHelper();
    public DataErrorInfoAdapter DataErrorInfoAdapter { get; set; } // this type does not exist
    [...]

    protected ValidatableViewModelBase()
    {
        this.DataErrorInfoAdapter = new NotifyDataErrorInfoAdapter(this.Validator);
        [...]
    }

    #region IDataErrorInfo

    [Ignore]
    public string Error => this.DataErrorInfoAdapter.Error;

    [Ignore]
    public string this[string columnName] => this.DataErrorInfoAdapter[columnName];

    #endregion IDataErrorInfo
}

我找不到任何关于如何替换已弃用的 DataErrorInfoAdapter 的迁移指南。我所能找到的只是 some information 关于 NotifyDataErrorInfoAdapter,但我不太确定是否需要更改我的 ValidatableViewModelBase 以实现 INotifyDataErrorInfo 接口。

您对我有什么建议或参考文档吗? 有人可以向我解释一下,为什么他们放弃 DataErrorInfoAdapter 而不是 IDataErrorInfo

他们实际上似乎已经放弃了对 IDataErrorInfo 接口的支持。

新的 NotifyDataErrorInfoAdapter 实现了自 .NET Framework 4.5 发布以来一直存在的 INotifyDataErrorInfoHere 是一个示例以及有关如何实施它的更多信息。

如果你出于某种原因想坚持使用 IDataErrorInfo,将 MvvmValidation 升级到最新版本是没有意义的。