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) 上找不到“Validation”属性。BindingExpression:Path=Validation.HasError; DataItem=' PersonWindowViewModel' (HashCode=38783181); 目标元素是 'TextBox' (Name='FirstName');
Did I miss something?
1- Style
<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 implement IDataErrorInfo
3- textBox in view
<TextBox x:Name="FirstName" Text="{Binding Person.FirstName, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}"></TextBox>
3 - I use Caliburn MVVM
I got " BindingExpression path error: 'Validation' property not found on 'object' ''PersonWindowViewModel' (HashCode=38783181)'. BindingExpression:Path=Validation.HasError; DataItem='PersonWindowViewModel' (HashCode=38783181); target element is 'TextBox' (Name='FirstName'); target property is 'NoTarget' (type 'Object')"S
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看 Beth Massi 关于实现验证的文章 这里
基本上,您已经使用了
DataTrigger
,而您只需要一个Trigger
所以:
Check out Beth Massi's article on implementing validation here
Basically, you've used a
DataTrigger
where you just need aTrigger
So: