2012-04-12 68 views
0

我與F6工作作爲一種快捷方式,以激活編輯模式,像這樣的意向,InputBinding:如何處理InputBinding命令和ToggleButtons?

<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

你真的需要一個轉換器'IsChecked'? – 2012-04-12 06:51:18

+0

猜這在這種情況下並不是真的有必要,是的。可能我是NULL綜合徵恐懼的受害者。 – Artimidor 2012-04-12 14:24:04

回答

1

讓你的命令「切換」的IsEditPressed性質,理想的情況是需要做的,這使得它更容易把一切都在同步的唯一的事情。然後,您甚至不需要在ToggleButton命令本身作爲IsChecked結合就足夠了。

+0

當按鈕被點擊時,您仍然需要在ToggleButton上的Command綁定來調用命令? – roomaroo 2012-04-12 08:45:47

+0

確實...... ToggleButton上必須有一個命令,對吧?否則:如何按下按鈕執行該命令? – Artimidor 2012-04-12 14:16:24

+0

啊,我現在看到,H.B.! 我可以把代碼實際上是在IsEditPressed的設置部分,本身就是簡單地切換IsEditPressed爲真或假的命令來執行命令。 - 太棒了!謝謝你的提示! – Artimidor 2012-04-12 14:42:44