2010-11-09 37 views
30

我需要刪除組合框周圍的紅色矩形。我已經在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> 

任何想法? :(

回答

80

使用此修改Validation.ErrorTemplate

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

,然後用它在你的組合框像

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

要想沒有驗證錯誤的指示,刪除DockPanel,將可見性設置爲摺疊或您喜歡的任何其他方式。

差點忘了,大概要去掉 「紅色邊框」

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

完美,謝謝。最後的選擇對我來說是完美的,我不知道。 – vikox 2010-11-10 07:45:07

+2

+1對於Validation.ErrorTemplate =「{x:Null}」。我正在體驗「完全正確」的UI元素的喜悅。 – BSalita 2012-02-24 10:06:52

+10

+1對於Validation.ErrorTemplate =「{x:Null}」,真棒,謝謝。 – Mark 2013-09-12 13:36:48

-1

觸發器中的setter將設置名爲「NotValid」的元素的Visibility屬性,這在您發佈的XAML中沒有定義,如果沒有名爲「NotValid」的元素,那就是您的問題

1

添加您的組合框,Validation.ErrorTemplate = 「{x:空}」 最簡單的方法;這段代碼是無視錯誤的。