将切换按钮绑定到两个命令

时间:2012-08-13 10:13:05

标签: c# wpf silverlight xaml

我的silverlight应用程序中有一个切换按钮,如下所示:

<ToggleButton Content="ToggleButton" Margin="0,30,0,0" Style="{StaticResource ChkToggleButton}" />

切换当前正在改变切换时的视觉状态,仅此而已 但是,我需要使用不同的命令绑定每个切换。例如:在按钮上按1,运行command1并再次按下按钮,运行command2

如何做到这一点?

2 个答案:

答案 0 :(得分:9)

出于此目的使用Triggers

<ToggleButton Content="ToggleButton" Margin="0,30,0,0" Style="{StaticResource ChkToggleButton}">
  <i:Interaction.Triggers>
        <i:EventTrigger EventName="Checked">
             <i:InvokeCommandAction Command="{Binding FirstCommand}"
                                    CommandParameter="{Binding SomeParameter}" />
        </i:EventTrigger>
        <i:EventTrigger EventName="Unchecked">
             <i:InvokeCommandAction Command="{Binding SecondCommand}"
                                    CommandParameter="{Binding AnotherParameter}" />
        </i:EventTrigger>
  </i:Interaction.Triggers>
</ToggleButton>  

如果您没有Interactivity,可以通过安装Expression Blend SDKNuGet package来获取。

答案 1 :(得分:2)

使用单个命令并跟踪切换状态。

拥有一个viewmodel(最好是一些代码隐藏)并让它使用这两个输入来决定实际需要做什么。