有没有什么办法可以将数据注释用作WPF中的验证来源?我希望能够定义一个类,如:
class myData
{
[Required]
[MaxLength(50)]
public string Name{get;set;}
}
然后将其绑定到视图中的字段,并且wpf验证用户为此字段输入一些值,并确保其长度不大于50.我知道我可以为此编写验证器,但是然后,如果我将maxLength改为60,那么我需要在验证器中更改它,我不想在不同的地方进行更改。
答案 0 :(得分:0)
您需要创建该类的“元数据”定义。你需要这样的东西:
[MetadataTypeAttribute(typeof(LocationGroup.LocationGroupMetadata))]
public partial class myClass
{
internal sealed class myClassMetadata
{
// Metadata classes are not meant to be instantiated.
private myClassMetadata()
{
}
[Required]
[MaxLength(50)]
public string Name{ get; set; }
}
}
这会扩展具有必要元数据的类以支持验证。
答案 1 :(得分:0)
由于这个问题仍然没有答案,我在回答正在寻找同样事情的another question时遇到过这个问题,我也会在这里分享这个问题的解决方案。
Microsoft TechNet文章“Data Validation in MVVM”是使用数据批注在WPF中进行验证的非常干净和全面的实现。我自己阅读了解决方案并将其推荐给其他人。