如何在 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 控件,该控件在无效时转换视觉状态,以便它可以动画显示验证通知。
无论您做什么,都不要仅依靠颜色来显示验证状态。请记住,不是每个人都能轻易区分颜色!
几个小时后,我尝试在 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 控件,该控件在无效时转换视觉状态,以便它可以动画显示验证通知。
无论您做什么,都不要仅依靠颜色来显示验证状态。请记住,不是每个人都能轻易区分颜色!