2010-02-11 15 views
12

¿Cómo puedo definir un DataTrigger para un StackPanel? Se tiene una propiedad Trigger, pero la definición de un disparador aquí da el siguiente error en la inicialización al iniciar la aplicación:Definición de DataTrigger para StackPanel

Error en la inicialización de objetos (ISupportInitialize.EndInit). Los miembros de la colección Triggers deben ser del tipo EventTrigger. ....

Esto se da de la siguiente sencilla DataTrigger:

<StackPanel x:Name="PersonPanel" DataContext="{Binding CurrentPerson}"> 
    <TextBlock Text="{Binding Id}" /> 
    <TextBlock Text="{Binding Name}" /> 
    <StackPanel.Triggers> 
     <DataTrigger Binding="{Binding Id}" Value="1"> 
      <Setter TargetName="PersonPanel" Property="StackPanel.Background" Value="Green" /> 
     </DataTrigger>     
    </StackPanel.Triggers> 
</StackPanel> 

Ésta es mi primera Trigger nunca, así que lo que hago mal? ¿Debo definir el Trigger en otro lugar?

Respuesta

11

intentar algo como esto

<Window.Resources> 
     <Style x:Key="spStyle" TargetType="StackPanel"> 
      <Setter Property="StackPanel.Background" Value="Red" /> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Id}" Value="1"> 
        <Setter Property="StackPanel.Background" Value="Green" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Window.Resources> 
    <StackPanel x:Name="PersonPanel" Style="{StaticResource spStyle}" DataContext="{Binding CurrentPerson}"> 
     <TextBlock Text="{Binding Id}" /> 
     <TextBlock Text="{Binding Name}" /> 
    </StackPanel> 
+0

¡Thx! Funciona perfectamente :-) – stiank81

7

probar esto:

<TextBlock Text="{Binding Id}"> 
    <TextBlock.Style> 
     <Style> 
      <Style.Triggers> 
       <Trigger Property="TextBlock.Text" Value="1"> 
        <Setter TargetName="PersonPanel" Property="StackPanel.Background" Value="Green" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 
+1

Thx! Esto funciona, pero fui con la solución de Faisal. – stiank81

+0

De nada. –

Cuestiones relacionadas