Validation 使用MVVM灯进行Windows Phone 7文本框验证

Validation 使用MVVM灯进行Windows Phone 7文本框验证,validation,windows-phone-7,mvvm-light,Validation,Windows Phone 7,Mvvm Light,对于WP7.0应用程序(SL3),最好的方法是什么。我应该使用视觉状态吗?有没有一种方法可以像Silverlight示例那样使用模型中的属性?有关于MVVM+WP7的好例子吗 到目前为止,我只能找到这两个例子 对于每个视图,您应该将文件命名为Validated(ViewName).cs。每个人都应该从ValidatedModelBase实现的接口INotifyPropertyChanged、InotifyDataError继承 ValidationModelBase的属性: 有效 淋浴器 方法

对于WP7.0应用程序(SL3),最好的方法是什么。我应该使用视觉状态吗?有没有一种方法可以像Silverlight示例那样使用模型中的属性?有关于MVVM+WP7的好例子吗

到目前为止,我只能找到这两个例子


对于每个视图,您应该将文件命名为Validated(ViewName).cs。每个人都应该从ValidatedModelBase实现的接口INotifyPropertyChanged、InotifyDataError继承

ValidationModelBase的属性: 有效 淋浴器

方法: T ToModel-将所有ValidatedModel字段转换为ViewModel 无效验证:

public void Validate()
    {
        var fields = new List<string>();
        var type = this.GetType();
        var baseType = typeof(ValidatedModelBase<T>);

        while (type != baseType)
        {
            fields.AddRange(type.GetFields()
                .Where(field => field.FieldType == typeof(String) && field.Name.EndsWith("PropertyName"))
                .Select(field => field.GetValue(this) as String));

            type = type.BaseType;
        }

        foreach (var field in fields)
        {
            this.SetErrors(field, this.Validate(field), false);
        }

        this.RefreshIsValid();
    }
public void Validate()
{
变量字段=新列表();
var type=this.GetType();
var baseType=typeof(ValidatedModelBase);
while(type!=baseType)
{
fields.AddRange(type.GetFields()
.Where(field=>field.FieldType==typeof(String)和&field.Name.EndsWith(“PropertyName”))
.Select(field=>field.GetValue(this)作为字符串));
type=type.BaseType;
}
foreach(字段中的变量字段)
{
this.SetErrors(字段,this.Validate(字段),false);
}
这个.RefreshIsValid();
}
虚拟IList验证(string propertyName)——它将在ValidatedModels中实现,在这里,您可以将要验证的属性名作为参数,并在简单的开关/案例指令中处理它


如果你愿意,我可以写更多关于我的方法。

为什么否决票是一个有效的问题+你可以看看我的WP7验证示例,如果它仍然相关的话:我不完全理解。但我是否正确,这是什么dows使用模型的属性来确定如何验证每个字段?您总是将视图中的字段绑定到ValidatedModel(binding VaildatedModel.FieldName)。我会尽力理解。如果你有任何样本代码让我知道。ValidatedModel=ViewModel?我只是想弄清楚这将如何与WP7/MVVMLight和一个简单的文本框和提交按钮一起使用。您将用户控件绑定到ValidatedModel,然后从ValidatedModel将验证后的所有属性传递到ViewModel。