我正在使用 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()
属性上出现错误,因此,如果可以同时拥有这两个属性,那么我缺少一个步骤,并且在文档。
预先感谢您的帮助。 干杯 迈克
将
[NotifyDataErrorInfo]
添加到您的私人财产:
public partial class ViewModel : ObservableValidator
{
[NotifyDataErrorInfo]
[MinLength(2)]
[MaxLength(100)]
[ObservableProperty]
private string name;
}