2009-07-09 26 views
0

J'essaie d'utiliser MultiDataTriggers pour activer/désactiver un bouton basé sur la valeur de deux zones de texte.WPF MutiDataTrigger ne déclenche pas setter

Les docs indiquent que les conditions d'un MultiDataTrigger sont logiquement liées ensemble. Dans l'exemple ci-dessous si txtFirst.Text est foo et txtSecond.Text est la barre que je voudrais activer le bouton. Cependant, le bouton reste toujours désactivé (IsEnabled = false).

Je suis sûr que je manque un truc ici, mais une recherche approfondie de Google ne m'a pas eu nulle part ....

<StackPanel> 
     <Button IsEnabled="False" Content="OK"> 
      <Button.Style> 
       <Style> 
        <Style.Triggers> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding ElementName=txtFirst, Path=Text}" Value="foo"/> 
           <Condition Binding="{Binding ElementName=txtSecond, Path=Text}" Value="bar"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Button.IsEnabled" Value="True"/> 
         </MultiDataTrigger> 
        </Style.Triggers> 
       </Style> 
      </Button.Style> 
     </Button> 

     <TextBox x:Name="txtFirst"/> 
     <TextBox x:Name="txtSecond"/> 
    </StackPanel> 

Répondre

3

Définition d'une propriété directement sur l'objet lui-même l'emporte sur tous les styles Paramètres déclenchés Changez la déclaration de votre bouton en:

<Button Content="OK"> 
    <Button.Style> 
     <Style> 
      <Setter Property="IsEnabled" Value="False"/> 
      <Style.Triggers> 

Maintenant que la propriété IsEnabled est définie dans le style, le déclencheur peut la modifier. Ne me demande pas pourquoi. :)

+0

C'est tout !!!! Merci :-) – Sean