如何处理InputBinding命令和ToggleButtons?

时间:2012-04-12 06:47:51

标签: wpf command togglebutton inputbinding

我有一个InputBinding,意图是F6作为激活编辑模式的快捷方式,如下所示:

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

按钮本身如下所示:

<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>

如果手动按下该按钮,则触发该命令。此外,如果用户按下F6。但在这种情况下,按钮不会获​​得IsChecked状态。如何在不为KeyBinding编写不同命令的情况下完成此操作?

1 个答案:

答案 0 :(得分:1)

让你的命令“切换”IsEditPressed属性,理想情况下,这将是唯一需要做的事情,这使得更容易保持所有内容同步。然后您甚至不需要ToggleButton本身上的命令,因为IsChecked绑定就足够了。