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

时间:2010-11-09 16:21:13

标签: wpf validation 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>

用于删除红色矩形的样式,但在xaml中有一些错误,表示Visibility属性无法识别或无法访问。样式定义如下。

<Style x:Key="combostyle">
<Style.Triggers>
    <Trigger Property="Validation.HasError" Value="True">
        <Setter Property="Visibility" TargetName="NotValid" Value="Visible"/>
    </Trigger>  
</Style.Triggers>   

有什么想法吗? :(

3 个答案:

答案 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”的元素,那就是你的问题。