web-dev-qa-db-ja.com

コンボボックスの周りの赤い長方形を削除します

コンボボックスの周りの赤い長方形を削除する必要があります。私は(以下の)このように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>   

何か案が? :(

30
vikox

これを使用して、Validation.ErrorTemplateを変更します

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

そしてそれをあなたのコンボボックスで次のように使用します

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

検証エラーが表示されないようにするには、DockPanelを削除するか、VisibilityをCollapsedに設定するか、その他の方法を選択します。

ほとんど忘れてしまった、おそらく「赤い境界線」を削除する最も簡単な方法

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

コンボボックスを追加しますValidation.ErrorTemplate = "{x:Null}";このコードはエラーを無視します。

1
user8634218