【问题标题】:remove red rectangle around combobox删除组合框周围的红色矩形
【发布时间】:2011-05-07 08:42:58
【问题描述】:

我需要删除组合框周围的红色矩形。我在 xaml 中设置了组合框,如下所示,我正在尝试覆盖 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>   

有什么想法吗? :(

【问题讨论】:

    标签: wpf validation xaml combobox styling


    【解决方案1】:

    使用它来修改 Validation.ErrorTemplate

    <ControlTemplate x:Key="ComboBoxValidationErrorTemplate">
        <DockPanel>
            <Border BorderBrush="Blue" BorderThickness="4">
                <AdornedElementPlaceholder />
            </Border>
        </DockPanel>
    </ControlTemplate>
    

    然后在你的 ComboBox 中使用它

    <ComboBox Validation.ErrorTemplate="{StaticResource ComboBoxValidationErrorTemplate}"
              ...>
    

    要不显示验证错误,请移除 DockPanel,将 Visibility 设置为 Collapsed 或任何其他您喜欢的方式。

    差点忘了,可能是去除“红色边框”最简单的方法

    <ComboBox Validation.ErrorTemplate="{x:Null}"
              ...>
    

    【讨论】:

    • 完美,谢谢。最后一个选项对我来说是完美的,我不知道。
    • +1 表示 Validation.ErrorTemplate="{x:Null}"。我正在体验“完全正确”的 UI 元素带来的乐趣。
    • +1 用于 Validation.ErrorTemplate="{x:Null}",太棒了,谢谢。
    • 但是在这种情况下是否可以删除红色验证矩形,这是否意味着绑定失败?由于 ItemsSource 绑定到 StaticResource,不应该通过 OneWay 绑定来完成吗?如:ItemsSource="{Binding Source={StaticResource PodKategoriaLookup, Mode=OneWay},
    • @mkb:它是绑定验证错误的视觉指示。如果您想修改或删除该视觉指示,无论出于何种原因,都可以像上面的示例中那样完成。
    【解决方案2】:

    添加您的组合框,Validation.ErrorTemplate="{x:Null}" ;此代码是忽略错误。

    【讨论】:

      【解决方案3】:

      触发器中的设置器正在设置名为“NotValid”的元素的 Visibility 属性。这未在您发布的 XAML 中定义。如果没有名为“NotValid”的元素,那就是你的问题。

      【讨论】:

        猜你喜欢
        • 2013-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-09
        • 1970-01-01
        相关资源
        最近更新 更多