2010-10-29 85 views
1

我有一個可編輯的組合框,文本綁定到對象屬性。我已經與文本屬性關聯了一個exceptionsValidationrule,它正在工作並將控件變成紅色。我還需要禁用按鈕,但我不能縫找到如何檢查validation.haserrors在這種情況下Wpf組合框驗證觸發器

我的XAML組合框

<ComboBox Margin="0,3,0,3" Width="40" Name="CATCODE" IsEditable="True" > 
    <ComboBox.Text> 
     <Binding Path="CategoryCode" > 
      <Binding.ValidationRules> 
       <ExceptionValidationRule > 

       </ExceptionValidationRule> 
      </Binding.ValidationRules> 
     </Binding> 
    </ComboBox.Text> 
</ComboBox> 

數據觸發

<Style x:Key="DisbleOnValidation" TargetType="Button"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding Path=Validation.HasError, ElementName=CATCODE}" Value="True" > 
      <Setter Property="IsEnabled" Value="False"/> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

回答

6

嘗試從Validation.HasError改變路徑(Validation.HasError)

<Style x:Key="DisbleOnValidation" TargetType="Button"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding Path=(Validation.HasError), ElementName=CATCODE}" Value="True" > 
      <Setter Property="IsEnabled" Value="False"/> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

當綁定到附加編輯屬性,應該總是包含'('...')'。像

{Binding Path=(Grid.Row), ElementName=SomeElement} 
{Binding Path=(Canvas.Left), ElementName=SomeOtherElement} 
+0

神奇迷人。 – rerun 2010-11-01 13:52:56

+0

沒問題,很高興它工作:) – 2010-11-01 14:06:47