удалить красный прямоугольник вокруг combobox


Мне нужно удалить красный прямоугольник вокруг combobox. У меня есть setup combobox в xaml, как (ниже)это, и я пытаюсь переопределить проверку.Табличка с ошибкой.

        <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, говорящая, что свойство видимости не распознается или недоступно. Определение стиля приведено ниже.

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

Есть идеи? : (

3 30

3 ответа:

Используйте это для изменения проверки.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}"
          ...>

Добавьте свой Combobox, Проверка.ErrorTemplate= "{x:Null} " ; этот код игнорирует ошибки.

Задатчик в триггере задает свойство видимости элемента с именем "NotValid". Это не определено в XAML, который вы опубликовали. Если нет элемента с именем "NotValid", это ваша проблема.