如何在 WP 8.1 应用程序中进行简单的数据验证(Windows 运行时)

How to do simple data validation in WP 8.1 app (Windows Runtime)

几个小时后,我尝试在 Windows Phone 8.1 应用程序(Windows 运行时)中进行数据验证,如本页所示:https://msdn.microsoft.com/en-us/library/windows/apps/cc278072(v=vs.105).aspx#BKMK_Datavalidation.

但似乎此技术仅对 WP 8.1 Silverlight 有效(ValidatesOnExceptions 和其他一些属性已从绑定类型中删除)。

所以,我有一个“主机”class 实现了“INotifyPropertyChanged”接口。每个属性是这样制作的:

public string Name
{
    get { return _name; }
    set 
    {
        if (string.IsNullOrWhiteSpace(value))
            throw new ArgumentException("The name can't be empty.");
        // else
        _name = value;
        NotifyPropertyChanged("Name");
    }
}
private string _name;

我想利用数据绑定做一个简单的验证数据。当 TextBox 失去焦点时,将尝试更改源。如果抛出异常,TextBox 会改变颜色(例如)直到输入正确的值。

<TextBlock Text="Name" Style="{StaticResource BodyTextBlockStyle}"  />
<TextBox x:Name="TextBoxName" Text="{Binding Name, Mode=TwoWay}" Margin="0,8,0,16"/>

有人可以告诉我如何使用 Windows 运行时获得此结果(如果可能的话,简单地)吗?

Windows Phone 8.1 运行时应用程序没有内置任何验证功能。正如您所注意到的,您链接的文档特定于 Silverlight。

您可以通过为数据上下文提供 IsValid 属性 并使用适当的数据转换器将文本框的前景色、验证文本等绑定到 IsValid 来实现基本验证系统。下一步是编写一个 ValidatingTextBox 控件,该控件在无效时转换视觉状态,以便它可以动画显示验证通知。

无论您做什么,都不要仅依靠颜色来显示验证状态。请记住,不是每个人都能轻易区分颜色!