我有一个 UWP 应用程序,它使用各种TextBox
来收集用户信息:
<Grid>
<TextBox Text="{Binding Codigo}"></TextBox>
<TextBox Text="{Binding Producto}"></TextBox>
<TextBox Text="{Binding Cantidad}"></TextBox>
</Grid>
我的问题是,验证用户没有输入错误数据的最佳方法是什么,也就是说,让他们TextBox
只允许输入数字或某种字符掩码?
必须从代码完成或可以从 XAML 完成
目前
UWP
它不包含任何验证框架,但是 C# 社区正在蓬勃发展,并且在 GitHub 上已经有一个非常有趣的替代方案值得回顾:ValidatableBase要使用它,您必须从 GitHub 下载代码并编译库,然后将其添加到解决方案。该模型
你应该做的是创建一个继承自的模型
ValidatableBase
,因为你可能正在使用它,BindableBase
你应该使用这样的东西视图模型
要触发验证,您可以通过多种方式进行,但一种方式是使用按钮,在这种情况下,拥有这样的 ViewModel 会很方便。
XAML 和绑定
你应该绑定的
XAML
是这样的向模型属性添加验证属性
一切准备就绪后,您就可以使用验证属性装饰模型,我在示例中包含了必填字段的验证和电子邮件值实际上是电子邮件的验证,并使用了自定义验证。
处理 ViewModel 中的错误
最后在 Viewmodel 中实现该方法
Execute
,以便它将您置于Errores
模型所有属性的所有错误中,就像这样这对你有用。
UWP - 如何在通用应用中实现字段验证
您可以使用DataAnnotations,添加对
System.ComponentModel.DataAnnotations
基本上,您
ViewModel
在绑定到视图中控件的属性上定义属性:有关更多详细信息,我推荐这篇文章 Validation in MVVM using Data Annotations,它非常完整
因为它是一个 UWP 应用程序,也许 DataAnnotations 库不会让您引用它,但是按照相同的路径,还有一个替代方案:
基本上是一样的,你在 的属性中定义验证属性
ViewModel
,只是你会使用适合 WinRT 的实现。