Windows 8 Metro: Implementing Validation

validation, windows-8, windows-runtime, winrt-xaml, xaml

Solution

I added something to the WinRT XAML Toolkit. It's called TextBoxValidationExtensions and allows you to define the validation like this:

<TextBox
    Width="400"
    HorizontalAlignment="Left"
    xyzc:TextBoxValidationExtensions.Format="NonEmptyNumeric"
    xyzc:TextBoxValidationExtensions.InvalidBrush="Red"
    xyzc:TextBoxValidationExtensions.ValidBrush="Green" />

The formats are currently defined as:

[Flags]
public enum ValidTextBoxFormats
{
    Any = 0,
    NonEmpty = 1,
    Numeric = 2,
    NonEmptyNumeric = 3
}

The entire code is a bit too long to share here. You can take out the code from CodePlex and modify to your liking - add new validation rules, modify default brushes etc.

Problem

I just googled for about 2 hours and didn't find anything. Given the following scenario: ``` public class Person { [Required] public string Name { get; set; } } ``` XAML: ``` <TextBox Text="{Binding Name, Mode=TwoWay}" /> ``` How would you go about automatically get feedback of the validation on the UI like there is in MVC3? (Oh, and I really don't care at the moment if I would be able to use the integrated DataAnnotations like [Required] or not) Any help is much appreciated!

Original source