Windows 8 Metro:实施验证

Shi*_*ion 5 validation xaml windows-8 windows-runtime winrt-xaml

我只是用Google搜索了大约2个小时,但没有找到任何东西.

鉴于以下情况:

public class Person
{
    [Required]
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

XAML:

<TextBox Text="{Binding Name, Mode=TwoWay}" />
Run Code Online (Sandbox Code Playgroud)

您将如何在MVC3中自动获取UI上的验证反馈?

(哦,如果我能够使用像[必需]那样的集成数据注释,我现在真的不在乎)

任何帮助深表感谢!

Fil*_*kun 13

我在WinRT XAML工具包中添加了一些东西.它被称为TextBoxValidationExtensions,允许您像这样定义验证:

<TextBox
    Width="400"
    HorizontalAlignment="Left"
    xyzc:TextBoxValidationExtensions.Format="NonEmptyNumeric"
    xyzc:TextBoxValidationExtensions.InvalidBrush="Red"
    xyzc:TextBoxValidationExtensions.ValidBrush="Green" />
Run Code Online (Sandbox Code Playgroud)

格式目前定义为:

[Flags]
public enum ValidTextBoxFormats
{
    Any = 0,
    NonEmpty = 1,
    Numeric = 2,
    NonEmptyNumeric = 3
}
Run Code Online (Sandbox Code Playgroud)

整个代码有点太长了,无法在这里分享.您可以从CodePlex中取出代码并根据自己的喜好进行修改 - 添加新的验证规则,修改默认画笔等.