2010-11-09 21 views
30

Ich muss rotes Rechteck um Combobox entfernen. Ich habe Combobox in Xaml wie (unten) eingerichtet und ich versuche, die Validation.ErrorTemplate zu überschreiben.entfernen rotes Rechteck um Combobox

 <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> 

und Stil für rotes Rechteck zu entfernen, aber ein paar Fehler in XAML haben sagen, dass Visibility-Eigenschaft nicht erkannt wird oder nicht zugänglich ist. Die Stildefinition ist unten.

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

Jede Idee? :(

Antwort

80

verwenden die Validation.ErrorTemplate

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

zu ändern und es dann in Ihrem ComboBox verwenden wie

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

keinen Hinweis auf einen Validierungsfehler zu haben, entfernen das DockPanel, legen Sie die Sichtbarkeit auf Collapsed fest oder wie Sie möchten.

Fast vergessen, wahrscheinlich der einfachste Weg, um die "Red Border"

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

Perfekt, danke. Die letzte Option ist perfekt für mich, das wusste ich nicht. – vikox

+2

+1 für Validation.ErrorTemplate = "{x: Null}". Ich habe die Freude an einem "genau richtigen" UI-Element. – BSalita

+10

+1 für Validation.ErrorTemplate = "{x: Null}", super, Danke. – Mark

-1

Der Setter in Ihrem Trigger setzt die Visibility -Eigenschaft eines Elements namens "NotValid". Das ist nicht in der XAML Sie gebucht geschrieben. Wenn es kein Element namens "NotValid" ist, ist das Ihr Problem.

1

Fügen Sie Ihre Combobox, Validation.ErrorTemplate = "{x: Null}" entfernen; Dieser Code ignoriert Fehler.

Verwandte Themen