Аннотации данных и проверка wpf - PullRequest
0 голосов
/ 19 октября 2011

Есть ли способ использовать аннотацию данных в качестве источника проверки в WPF?Я хочу иметь возможность определить класс, такой как:

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

И затем связать его с полем в представлении, и wpf проверяет, что пользователь вводит какое-то значение для этого поля, а также удостоверяется, что его длинане больше 50. Я знаю, что могу написать валидатор для этого, но если я изменю maxLength на 60, то мне нужно изменить его в валидаторе, и я не хочу, чтобы изменения происходили в разных местах.

Ответы [ 2 ]

0 голосов
/ 09 июня 2015

Поскольку этот вопрос до сих пор остается без ответа, и я натолкнулся на него, отвечая на другой вопрос , который искал то же самое, я бы поделился здесь решением этого вопроса.

Статья Microsoft TechNet " Проверка данных в MVVM " является очень чистой и полной реализацией использования аннотаций данных для проверки в WPF. Я сам прочитал решение и рекомендую его другим.

0 голосов
/ 19 октября 2011

Вам необходимо создать определение «метаданных» класса.Вам понадобится что-то вроде этого:

[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; }
    }
}

Это расширяет класс необходимыми метаданными для поддержки проверки.

...