我有一个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编写不同命令的情况下完成此操作?
答案 0 :(得分:1)
让你的命令“切换”IsEditPressed
属性,理想情况下,这将是唯一需要做的事情,这使得更容易保持所有内容同步。然后您甚至不需要ToggleButton
本身上的命令,因为IsChecked
绑定就足够了。