удалить красный прямоугольник вокруг комбобокса - PullRequest
30 голосов
/ 09 ноября 2010

мне нужно убрать красный прямоугольник вокруг выпадающего списка. Я установил комбинированный список в 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>   

Есть идеи? (

Ответы [ 3 ]

81 голосов
/ 09 ноября 2010

Используйте это, чтобы изменить 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 голос
/ 07 декабря 2017

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

0 голосов
/ 09 ноября 2010

Установщик в вашем триггере устанавливает свойство Visibility элемента с именем «NotValid». Это не определено в опубликованном вами XAML. Если нет элемента с именем «NotValid», это ваша проблема.

...