在情节提要板中设置ViewModel布尔值属性

问题描述

|| 我有一个viewmodel中的一个属性触发的情节提要,这会触发动画开始。 但是,在完成动画处理后,如何将\“ Saved \”属性设置回False(以触发Exitaction。)
<Style targettype=\"TextBlock\" x:Key=\"FadeInOut\">
        <Style.Triggers>
            <DataTrigger Binding=\"{Binding Saved}\" Value=\"True\">
                <DataTrigger.Enteractions>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetProperty=\"Opacity\" Duration=\"0:0:1\" From=\"0\" To=\"1\" />
                            <!-- set \"Saved\" to false when done -->
                        </Storyboard>
                    </BeginStoryboard>
                </DataTrigger.Enteractions>
                <DataTrigger.Exitactions>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetProperty=\"Opacity\" Duration=\"0:0:1\" From=\"1\" To=\"0\"  />
                        </Storyboard>
                    </BeginStoryboard>
                </DataTrigger.Exitactions>
            </DataTrigger>
        </Style.Triggers>
    </Style>
    

解决方法

如果可以导航到属性,我建议您在结束时使用带有离散帧的BooleanAnimationUsingKeyFrames。
<BooleanAnimationUsingKeyFrames
            Storyboard.TargetProperty=\"DataContext.Saved\"
            FillBehavior=\"HoldEnd\">
            <DiscreteBooleanKeyFrame Value=\"False\" KeyTime=\"0:0:1\" />
</BooleanAnimationUsingKeyFrames>
由于您使用绑定到“ 2”,因此我假设使用DataContext应该可以工作。     ,您可以使用ObjectAnimationUsingKeyFrames设置属性。我不确定是否可以使用其他动画,但这是我最近使用的动画。
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty=\"Saved\">
        <DiscreteObjectKeyFrame KeyTime=\"0\">
            <DiscreteObjectKeyFrame.Value>
                <system:Boolean>False</system:Boolean>
            </DiscreteObjectKeyFrame.Value>
        </DiscreteObjectKeyFrame>
    </ObjectAnimationUsingKeyFrames>
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...