vik*_*kox 30 validation wpf xaml combobox styling
我需要删除组合框周围的红色矩形.我在xaml中设置了combobox,如下所示,我试图覆盖Validation.ErrorTemplate.
<ComboBox x:Name="comboPodkategoria"
Margin="0,3,0,0"
IsSynchronizedWithCurrentItem="False"
IsEditable="False"
ItemsSource="{Binding Source={StaticResource PodKategoriaLookup}, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
SelectedValue="{Binding IDPodKategoria}"
DisplayMemberPath="kat_popis" SelectedValuePath="IDPodkat" TabIndex="5" Style="{StaticResource combostyle}">
<Validation.ErrorTemplate>
<ControlTemplate>
</ControlTemplate>
</Validation.ErrorTemplate>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
用于删除红色矩形的样式,但在xaml中有一些错误,表示Visibility属性无法识别或无法访问.样式定义如下.
<Style x:Key="combostyle">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="Visibility" TargetName="NotValid" Value="Visible"/>
</Trigger>
</Style.Triggers>
Run Code Online (Sandbox Code Playgroud)
任何的想法?:(
Fre*_*lad 81
使用它来修改Validation.ErrorTemplate
<ControlTemplate x:Key="ComboBoxValidationErrorTemplate">
<DockPanel>
<Border BorderBrush="Blue" BorderThickness="4">
<AdornedElementPlaceholder />
</Border>
</DockPanel>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)
然后在你的ComboBox中使用它
<ComboBox Validation.ErrorTemplate="{StaticResource ComboBoxValidationErrorTemplate}"
...>
Run Code Online (Sandbox Code Playgroud)
要没有指示验证错误,请删除DockPanel,将Visibility设置为Collapsed或您喜欢的任何其他方式.
几乎忘了,可能是删除"红色边框"的最简单方法
<ComboBox Validation.ErrorTemplate="{x:Null}"
...>
Run Code Online (Sandbox Code Playgroud)