Несколько правил проверки и шаблоны проверки в WPF - PullRequest
3 голосов
/ 16 июня 2010

Есть ли у кого-нибудь тактика работы с несколькими правилами валидации и шаблонами для этих правил валидации.

Пример:

Я хочу иметь два правила валидации (обязательно и данные)

Я хочу либо ...

Один шаблон, который можно изменить, отображается в зависимости от того, какое правило сработало, или Два шаблона, которые отображаются в зависимости от того, какое правило сработало

Ответы [ 2 ]

2 голосов
/ 16 июня 2010

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

ValidationRule:

Мое правило проверки изменено для отправки «ErrorObject» со свойствами IsRequired и Message

    public class ErrorObject
    {
        public bool IsRequired { get; set; }
        public string Message { get; set; }
    }

....

return new ValidationResult(false, new ErrorObject() { IsRequired = true, Message = "Is Required" });

Шаблон:

В шаблоне проверки теперь я могу получить доступ к этим свойствам и соответственно изменить визуальный элемент. (В этом примере я показываю * для обязательных полей)

            <Border
                BorderBrush="Red"
                CornerRadius="3"
                BorderThickness="1">
                <AdornedElementPlaceholder
                    x:Name="errorAdorner" />
            </Border>
            <TextBlock
                Text="*"
                Foreground="Red"
                Visibility="{Binding ElementName=errorAdorner, Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent.IsRequired, Converter={StaticResource BooleanToVisibilityConverter}}" />

Так что это простой пример, но вы можете себе представить, что это может стать очень мощным. Спасибо MS, что разрешили отправить обратно объект !!!

0 голосов
/ 16 июня 2010

Я могу ошибаться, не уверен на 100%, но я думаю, что вам нужно программно применять шаблоны, если вы хотите отображать различные шаблоны.

Этот подход похож на этот? Программно изменить правило проверки в WPF TextBox

НТН.

...