1

MVVMモデルを使用しています。

""というブール値の依存関係プロパティがありますResultOfUpdate。ユーザーがコマンドを実行しようとするたびに変更されます。

この依存関係プロパティのセッターでRaisePropertyChanged()、プロパティ名の""メソッドを呼び出しています。

DataTriggerそれはそのようにバインドされています:

<DataTrigger Binding="{Binding ResultOfUpdate}"  Value="True">
    <DataTrigger.EnterActions>
        <BeginStoryboard>
            <Storyboard>
                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Opacity)" 
                                               AutoReverse="True">
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0"  Value="0"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.1"  Value="0.1"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.2" Value="0.2"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.3" Value="0.3"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.4" Value="0.4"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.5" Value="0.5"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.6"  Value="0.6"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.7" Value="0.7"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.8" Value="0.8"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.9" Value="0.9"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.1" Value="1"/>
                    <DiscreteDoubleKeyFrame KeyTime="0:0:0.3" Value="1"/>
                </DoubleAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </DataTrigger.EnterActions>
</DataTrigger>

..。

 <TextBlock Style="{StaticResource statusStyle}"  
            Opacity="0" Text="Results updated!"      
            FontSize="10" FontFamily="Segoe UI"/>

boolこれがtrueに設定されるたびに、ストーリーボードが再生されます。

紛らわしいことに、このストーリーボードは、ユーザーが最初にコマンドを実行したときに正しくトリガーされ、dependecyプロパティがtrueに更新されます。

その後の試行で、依存関係プロパティセッターコードが入力され、RaisePropertyChanged()メソッドが呼び出されたことがわかりましたが、ストーリーボードは再度再生されません。

私はここで間違って何をしましたか?

4

1 に答える 1

2

次のようなイベントトリガーを使用できます。

<StackPanel>
    <TextBlock Text="I'm a text block" Name="theTextBlock"/>
    <Button Name="BeginButton">Begin</Button>
    <StackPanel.Triggers>
        <EventTrigger RoutedEvent="Button.Click" SourceName="BeginButton">
            <BeginStoryboard Name="MyBeginStoryboard">
                <Storyboard>
                    <DoubleAnimation
                        Storyboard.TargetName="theTextBlock"
                        Storyboard.TargetProperty="(TextBlock.Opacity)"
                        From="0.0" To="1.0" AutoReverse="True" Duration="0:0:1"/>
                    </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </StackPanel.Triggers>
</StackPanel>
于 2012-06-20T16:54:36.507 に答える