2010-10-29 10 views
1

J'ai un combobox modifiable que le texte est lié à une propriété d'objet. J'ai associé une exceptionValidationrule à la propriété text et cela fonctionne et rend le contrôle rouge. Je dois également désactiver un bouton, mais je ne peux pas Seam trouver comment vérifier les validation.haserrors dans ce casWpf ComboBox validation Trigger

mon XAML pour la zone de liste déroulante

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

Le déclencheur de données

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

Répondre

6

Essayez de changer de chemin 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> 

lors de la liaison pour attacher ed propriétés, on devrait toujours inclure le '(' ... ')'. Comme

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

Fantastic awesomeness. – rerun

+0

Pas de problème, content que ça a marché :) –