【问题标题】:How to connect ICommand and VisualStateManager together如何将 ICommand 和 VisualStateManager 连接在一起
【发布时间】:2013-08-01 05:57:33
【问题描述】:
如何让窗口上的控件知道它们的状态应该改变。我必须使用 ICommand 并且由于控件可以具有不同的状态(启用/禁用、选中/未选中...)必须使用 VisualStateManager 来处理它们。
这可能是一种可能的情况:
单击录制按钮时(选中),窗口中的其他控件应该是不可选中的,一旦录制完成,它们应该是可选中的,并且在许多其他情况下。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签:
wpf
c#-4.0
visualstatemanager
icommand
【解决方案1】:
您可以借助交互和交互性来实现它。看看有没有帮助。
在您的 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 以获取当前行为程序集。