Validation.HasError附加属性

6 wpf mvvm idataerrorinfo caliburn

我错过了什么?

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>
Run Code Online (Sandbox Code Playgroud)

2 - Viewmodel在视图中实现IDataErrorInfo 3- textBox

 <TextBox x:Name="FirstName" Text="{Binding Person.FirstName,  UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}"></TextBox>
Run Code Online (Sandbox Code Playgroud)

3 - 我使用Caliburn MVVM

我"BindingExpression路径错误:对 '对象' '' PersonWindowViewModel未找到 '验证' 属性 '(的HashCode = 38783181)' BindingExpression:路径= Validation.HasError;的DataItem = 'PersonWindowViewModel'(的HashCode = 38783181);目标元件是'TextBox'(Name ='FirstName'); target属性为'NoTarget'(类型'Object')"S

kiw*_*pom 14

退房贝丝马西对实施验证的文章在这里

基本上,你已经使用过DataTrigger你需要的地方了Trigger

所以:

<Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
        <Setter ... />
    </Trigger>
</Style.Triggers>
Run Code Online (Sandbox Code Playgroud)

  • 我不能告诉你我有多少血腥的时光回到这里. (6认同)
  • @Will - 哈哈.我*喜欢*WPF,但我确实认为其中一些可能会更简单:) (2认同)