0

我有一个 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 编写不同命令的情况下完成此操作?

4

1 回答 1

1

让您的命令“切换”IsEditPressed属性,理想情况下,这将是唯一需要做的事情,这样可以更轻松地保持一切同步。然后,您甚至不需要ToggleButton本身的命令,因为IsChecked绑定就足够了。

于 2012-04-12T06:53:32.630 回答