3
我有一個UserControl
包含其他控件和TextBox
。它有一個Value
屬性,它綁定到TextBox
文本並且ValidatesOnDataErrors
設置爲True。在WPF中的不同控件上顯示驗證錯誤模板
當Value
屬性綁定中發生驗證錯誤時,錯誤模板(標準紅色邊框)顯示在整個UserControl
的周圍。
有沒有辦法僅在TextBox
附近展示? 我想能夠使用任何錯誤模板,所以簡單地將文本框放在邊框上,並綁定它的顏色或Validation.HasError
不是一個選項。
這裏是我的代碼:
<DataTemplate x:Key="TextFieldDataTemplate">
<c:TextField DisplayName="{Binding Name}" Value="{Binding Value, Mode=TwoWay, ValidatesOnDataErrors=True}"/>
</DataTemplate>
<controls:FieldBase x:Name="root">
<DockPanel DataContext="{Binding ElementName=root}">
<TextBlock Text="{Binding DisplayName}"/>
<TextBox x:Name="txtBox"
Text="{Binding Value, Mode=TwoWay, ValidatesOnDataErrors=True}"
IsReadOnly="{Binding IsReadOnly}"/>
</DockPanel>
用戶控件(FieldBase)比綁定到模型視圖執行驗證。