4

Silverlightアプリケーションに次のようなトグルボタンがあります。

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

トグルは現在、トグルの視覚的状態を変更しているだけです。
ただし、各トグルを異なるコマンドでバインドする必要があります。例:ボタンを押すと1を実行command1し、ボタンをもう一度押すとを実行しますcommand2

これはどのように行うことができますか?

4

2 に答える 2

11

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>  

お持ちでない場合は、 Expression Blend SDKInteractivityをインストールするか、NuGetパッケージとして入手できます。

于 2012-08-13T10:45:57.263 に答える
2

単一のコマンドを使用し、トグル状態も追跡します。

ビューモデル(できれば、またはコードビハインド)を用意し、これら2つの入力を使用して、実際に何を行う必要があるかを決定します。

于 2012-08-13T10:23:09.527 に答える