我需要删除组合框周围的红色矩形。我在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>
用于删除红色矩形的样式,但在xaml中有一些错误,表示Visibility属性无法识别或无法访问。样式定义如下。
<Style x:Key="combostyle">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="Visibility" TargetName="NotValid" Value="Visible"/>
</Trigger>
</Style.Triggers>
有什么想法吗? :(
答案 0 :(得分:81)
使用它来修改Validation.ErrorTemplate
<ControlTemplate x:Key="ComboBoxValidationErrorTemplate">
<DockPanel>
<Border BorderBrush="Blue" BorderThickness="4">
<AdornedElementPlaceholder />
</Border>
</DockPanel>
</ControlTemplate>
然后在你的ComboBox中使用它
<ComboBox Validation.ErrorTemplate="{StaticResource ComboBoxValidationErrorTemplate}"
...>
要表示没有验证错误,请删除DockPanel,将“可见性”设置为“折叠”或任何其他您喜欢的方式。
几乎忘了,可能是删除“红色边框”的最简单方法
<ComboBox Validation.ErrorTemplate="{x:Null}"
...>
答案 1 :(得分:1)
添加你的Combobox, Validation.ErrorTemplate =&#34; {x:Null}&#34; ;这段代码是忽略错误。
答案 2 :(得分:-1)
触发器中的setter设置名为“NotValid”的元素的Visibility属性。这不是您发布的XAML中定义的。如果没有名为“NotValid”的元素,那就是你的问题。