Windows Vista Beta | WinVistaBeta.com - Message | DataTrigger problem

September 07, 2008  
Subject: DataTrigger problem
Group: microsoft.public.windows.developer.winfx.avalon
Date: 3/1/2008 12:53:01 PM
From: =?Utf-8?B?Um9iIEhpbGw=?= [Email Address Protection]


Hi All!
I have a <DataTrigger> element that is checking the value of an enum for one
of three states. in each state i change an image, and fire off an animation.
My problem is that although the state change modifies the image, the
animation only works correctly for the first time, and thereafter, only the
LAST trigger makes the animation work. Ie, the storyboard faded up and then
flashed the icon. however if the visibility was set at all, it only ever
appeared once, so commentin out the visibility setters makes it visible, but
the fading part of the anim only works the first time, and strangely for the
last trigger. Any ideas? Am i misunderstanding the usage of the Entry & Exit
actions?
Cheers!



<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=ServerState}"
Value="Idle">
<DataTrigger.Setters>
<!--<Setter TargetName="theImage"
Property="Visibility" Value="{x:Static Visibility.Hidden}" />-->
</DataTrigger.Setters>
</DataTrigger>

<DataTrigger Binding="{Binding Path=ServerState}"
Value="Busy">
<DataTrigger.Setters>
<!--<Setter TargetName="theImage"
Property="Visibility" Value="{x:Static Visibility.Visible}" />-->
<Setter TargetName="theImage" Property="Source"
Value="download_server.png"></Setter>
</DataTrigger.Setters>
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource
FadeUpAndFlash}" x:Name="busyAnim"/>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="busyAnim" />
</DataTrigger.ExitActions>
</DataTrigger>


<DataTrigger Binding="{Binding Path=ServerState}"
Value="Failed">
<DataTrigger.Setters>
<!--<Setter TargetName="theImage"
Property="Visibility" Value="{x:Static Visibility.Visible}" />-->
<Setter TargetName="theImage" Property="Source"
Value="desable_server.png"></Setter>
</DataTrigger.Setters>
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource
FadeUpAndFlash}" x:Name="failAnim"/>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="failAnim" />
</DataTrigger.ExitActions>
</DataTrigger>



<DataTrigger Binding="{Binding Path=ServerState}"
Value="Complete">
<DataTrigger.Setters>
<!--<Setter TargetName="theImage"
Property="Visibility" Value="{x:Static Visibility.Visible}" />-->
<Setter TargetName="theImage" Property="Source"
Value="enable_server.png"></Setter>
</DataTrigger.Setters>
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource
FadeUpAndFlash}" x:Name="completeAnim" />
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="completeAnim" />
</DataTrigger.ExitActions>
</DataTrigger>
</ControlTemplate.Triggers>


Back