2010-03-13 10 views
1

J'ai un UserControl en XAML avec deux boutons ....XAML UserControl DataTrigger

Lorsque la propriété « VideoEnable » dans mon C# changement de code à true je veux changer la couleur d'un bouton.

Le code suivant compile mais se bloque et je ne peux pas trouver une bonne solution

<UserControl.Triggers> 
    <DataTrigger Binding="{Binding VideoEnable}" Value="true"> 
     <Setter Property="Button.Background" Value="Green" TargetName="VideoButton" /> 
     <Setter Property="Grid.Background" Value="Blue" TargetName="videoGrid" /> 
    </DataTrigger> 
</UserControl.Triggers> 

Maintenant, je l'ai essayé avec le code suivant, il ne tombe pas en panne, mais l'arrière-plan ne change pas: s

<UserControl.Resources> 
    <Style TargetType="{x:Type Button}"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Path=Videos}" Value="true"> 
       <Setter Property="Button.Background" Value="Green" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 

    public string Videos 
    { 
     get { return m_videos; } 

     set 
     { 
      m_videos = value; 
      NotifyPropertyChanged("Videos"); 
     } 
    } 

Ok, j'ai trouvé le problème ...

Ceci est mon bouton

 <Button DataContext="{Binding LensesBtn}" Margin="0,5,0,0" FontSize="14" FontWeight="Bold" Height="40" Opacity="0.8" HorizontalAlignment="Stretch" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"> 
      <Button.Background>#dbebf9</Button.Background> 
      <Button.BorderBrush>PowderBlue</Button.BorderBrush> 
      <Button.BorderThickness>4</Button.BorderThickness> 
      Lenses 
     </Button> 

Lorsque je supprime les DataContext, les propriétés de style et arrière-plan tout cela fonctionne ....

Mais je vraiment besoin propriétés

des conseils?

+0

Pouvez-vous poster le message d'erreur? –

+0

L'application tombe en panne. Je pense que j'utilise le dataTrigger dans un mauvais sens: s? – Bert

Répondre

0
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}"> 
    <Style.Triggers> 
     <Trigger Property="Videos" Value="True"> 
      <Setter Property="Background" Value="Green" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

Ceci est l'exemple dont vous avez besoin si votre code est valide. vous pouvez également ajouter un convertisseur afin de vérifier l'arrière-plan et d'autres propriétés.

Questions connexes