2012-04-12 7 views
0

このように私は、F6が編集モードを起動するためのショートカットとして機能することを意図してInputBindingを持っています。ボタンが押された場合InputBindingコマンドとToggleButtonsを処理する方法は?

<ToggleButton Height="26" Width="26" Margin="0,0,1,1" Padding="1" 
          ToolTip ="Bearbeiten (F6)" 
          Command="{Binding ActivateEdit}"    
          IsChecked="{Binding IsEditPressed, Converter={StaticResource boolToNullableBoolConverter}}" 
          IsTabStop="False" BorderThickness="0" BorderBrush="{x:Null}" Focusable="False"> 
    <Image Source="/Images/Edit.ico" Stretch="Fill" Height="16" Width="16"/> 
</ToggleButton> 

<Window.InputBindings> 
    <KeyBinding Gesture="F6" Command="{Binding Path=ActivateEdit}"/> 
</Window.InputBindings> 

ボタン自体は次のようになります手動でコマンドがトリガされます。また、ユーザがF6を押した場合。しかしその場合、ボタンはIsChecked状態になりません。 KeyBindingの別のコマンドをコーディングせずにこれをどのように達成できますか?

+0

本当に 'IsChecked'のコンバータが必要ですか? –

+0

この場合は本当に必要ではないと思います。おそらく私はNULL症候群の恐怖の犠牲者です。 – Artimidor

答えて

1

コマンドをIsEditPressedのプロパティを「トグル」にすると、これが実行する必要があるのは理想的です。すべてを同期しやすくするのが理想です。 IsCheckedバインディングで十分であるため、ToggleButtonでコマンドを実行する必要はありません。

+0

もちろん、ボタンをクリックしたときにコマンドを呼び出すためにToggleButtonにコマンドバインディングが必要ですか? – roomaroo

+0

確かに... ToggleButtonにはコマンドが必要です。それ以外の場合:ボタンを押すとそのコマンドがどのように実行されますか? – Artimidor

+0

ああ、私は今、H.B.を参照してください! IsEditPressedのSet部分に実際にコマンドを実行するコードを置くことができます。コマンド自体では、IsEditPressedをtrueまたはfalseに切り替えるだけです。 - よく働く!ヒントをありがとう! – Artimidor

関連する問題