数据注释和wpf验证

时间:2011-10-19 11:24:47

标签: wpf validation data-annotations

有没有什么办法可以将数据注释用作WPF中的验证来源?我希望能够定义一个类,如:

class myData
{
    [Required]
    [MaxLength(50)]
    public string Name{get;set;}
}

然后将其绑定到视图中的字段,并且wpf验证用户为此字段输入一些值,并确保其长度不大于50.我知道我可以为此编写验证器,但是然后,如果我将maxLength改为60,那么我需要在验证器中更改它,我不想在不同的地方进行更改。

2 个答案:

答案 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中进行验证的非常干净和全面的实现。我自己阅读了解决方案并将其推荐给其他人。