数据验证
Avalonia 提供了不同的数据验证选项。在本节中,我们将向您展示如何验证您的 ViewModel
的属性,以及如何样式化 显示的错误消息。
验证属性
Avalonia 使用 DataValidationPlugins
来验证您绑定的属性。Avalonia 提供了以下三个内置的验证插件:
- DataAnnotations - ValidationPlugin
- INotifyDataErrorInfo - ValidationPlugin
- Exception - ValidationPlugin
DataAnnotations - ValidationPlugin
您可以使用不同的 Validation-Attributes
来装饰您的 ViewModel
的属性。您可以使用内置的验证属性,使用 CustomValidationAttribute
或者通过派生自 ValidationAttribute
来创建自己的验证属性。
示例:属性 EMail 是必需的,并且必 须是有效的电子邮件地址
[Required]
[EmailAddress]
public string? EMail
{
get { return _EMail; }
set { this.RaiseAndSetIfChanged(ref _EMail, value); }
}
INotifyDataErrorInfo - ValidationPlugin
Avalonia 还支持实现 INotifyDataErrorInfo
接口的类的验证。一些 MVVM
-库使用此接口进行数据验证,例如 Microsoft.Toolkit.Mvvm 库和 ReactiveUI.Validation
库。有关使用说明,请参阅您选择的 MVVM
-库的文档。
信息
像 Microsoft.Toolkit.Mvvm
这样的库使用 DataAnnotiations
进行验证。这可能会与 DataAnnotations - ValidationPlugin 冲突。请参阅 管理 ValidationPlugins 来解决此问题。