我的应用程序是SL2通过WCF公开的实体框架模型读取和写入数据。由于来自SL3的新验证控件已经过时,我们拒绝编写任何UI验证。
...但是,在昨天对我们的项目进行试用更新后,我们意识到,当从EF模型创建对象时,大多数将验证属性附加到业务对象的标准做法都不能轻易应用。
有没有人有类似的经历,如果是这样,你是如何解决这个问题的?
谢谢, 标记
答案 0 :(得分:1)
你是对的,你有两个选择。
在模型或视图模型中,根据MVVM的实现,在属性的setter中,在那里进行一些验证,如果出现问题则抛出异常,然后在数据绑定中使用SL3 ValidatesOnException属性在每个被验证的控件的视图上。
使用MetaDataClasses为您现有的域模型提供插件功能
[MetadataClass(typeof(MyMetadataClass))]
public partial class MyClass
{
public int MyProperty { get; set; }
}
public class MyMetadataClass
{
[Range(1,100)]
public int MyProperty{ get; set; }
}