MVVM 工具包数据验证和 ObservableProperty

问题描述 投票:0回答:1

我正在使用 WPF 并使用 MVVM 社区工具包。阅读文档,我了解到我可以通过继承

ObservableValidator
并将此模式用于我的绑定属性来进行验证:

    private string name;

    [Required(ErrorMessage = "You must enter a name.")]
    [MinLength(2)]
    [MaxLength(100)]
    public string Name
    {
        get => name;
        set => SetProperty(ref name, value, true);
    }

使用此模式,我可以在字段周围获得一个红色框,并可以在我的 UI 上显示错误消息。

但是使用这种模式,我失去了

[ObservableProperty]
的源生成器优点,例如,我没有得到可以利用的自动生成的
OnNameChanged()
部分。

我错过了什么吗?有没有办法同时获得

[ObservableProperty]
[ObservableValidator]
的源生成器优点?

我尝试简单地将我的

[ObservableProperty]
转换为完整属性,并立即在关联的
OnNameChanged()
属性上出现错误,因此,如果可以同时拥有这两个属性,那么我缺少一个步骤,并且在文档。

预先感谢您的帮助。 干杯 迈克

wpf validation mvvm
1个回答
0
投票

[NotifyDataErrorInfo]
添加到您的私人财产:

public partial class  ViewModel : ObservableValidator
{
   [NotifyDataErrorInfo]
   [MinLength(2)]
   [MaxLength(100)]
   [ObservableProperty]
   private string name;
}
© www.soinside.com 2019 - 2024. All rights reserved.