如何将ICommand和VisualStateManager连接在一起

时间:2013-07-31 15:46:22

标签: wpf c#-4.0 visualstatemanager icommand

如何让窗口上的控件知道应该更改状态。我必须使用ICommand,因为控件可以有不同的状态(启用/禁用,已检查/未选中...)必须使用VisualStateManager处理它们。

这可能是一种可能的情况: 当单击“录制”按钮(选中)时,窗口中的其他控件应取消选中,一旦录制完成,它们应该是可检查的以及许多其他场景。

任何帮助都会非常感激。 感谢。

1 个答案:

答案 0 :(得分:0)

您可以通过互动和互动来实现它。看看它是否有帮助。

在XAML中添加以下引用

xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" 
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 

您可以绑定ICommand并提供VisualState名称,该名称将在点击Button时应用

<Button>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <i:InvokeCommandAction Command="{Binding YourICommand}" /> 
            <ei:GoToStateAction StateName="YourVisualStateName" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Button>

如果您没有Blend 4,则可以安装Blend 4 SDK以获取当前的行为程序集。