删除组合框周围的红色矩形

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)

  • +1 for Validation.ErrorTemplate ="{x:Null}",真棒,谢谢. (10认同)
  • +1 for Validation.ErrorTemplate ="{x:Null}".我正在体验"完全正确"的UI元素的乐趣. (2认同)