Прикачено свойство Validation.HasError

Пропуснах ли нещо?

1- Стил

 <Style TargetType="{x:Type TextBox}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=Validation.HasError}" Value="true">
                <Setter Property="BorderBrush" Value="Blue" />
            </DataTrigger>
        </Style.Triggers>
        <Setter Property="MinWidth" Value="160" />
        <Setter Property="Margin" Value="0 7 0 0"/>
    </Style>

2 - Viewmodel внедрява IDataErrorInfo 3- текстово поле в изглед

 <TextBox x:Name="FirstName" Text="{Binding Person.FirstName,  UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}"></TextBox>

3 - Използвам Caliburn MVVM

Получих грешка в пътя на BindingExpression: свойството „Валидация“ не е намерено на „обект“ „PersonWindowViewModel“ (HashCode=38783181)“. BindingExpression:Path=Validation.HasError; DataItem='PersonWindowViewModel' (HashCode=38783181); целевият елемент е 'TextBox' (Name='FirstName'); целевото свойство е 'NoTarget' (тип 'Object')"S


person Community    schedule 16.05.2010    source източник


Отговори (1)


Вижте статията на Бет Маси за прилагане на валидиране тук

По принцип сте използвали DataTrigger там, където просто ви трябва Trigger

So:

<Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
        <Setter ... />
    </Trigger>
</Style.Triggers>
person kiwipom    schedule 16.05.2010
comment
Не мога да ви кажа колко проклети пъти трябва да се връщам тук. - person ; 06.07.2011
comment
@Will - хаха. Обичам WPF, но наистина мисля, че някои от тях биха могли да бъдат малко по-прости :) - person kiwipom; 07.07.2011