2010-10-08 46 views
1

在WPF數據網格中,F2鍵用於編輯當前單元格。我的軟件項目的要求說F2應該做別的。我已經添加了一個鍵綁定,但它只適用於keyboardfocus不在DataGrid中時。可以在WPF Datagrid中禁用F2鍵嗎?

我可以禁用或刪除DataGrid的密鑰綁定到F2密鑰嗎?

回答

3

我沒有找到一種方法來重寫在DataGrid中使用F2鍵。我可以禁用DataGrid中的功能,但是我不能同時將它與其他任何東西掛鉤。

讓利益相關者更容易地改變需求。畢竟,大多數Windows用戶都熟悉F2來啓用編輯,就像在Explorer和Excel中一樣。

+3

+1爲平臺一致的理智的罕見勝利! – 2010-10-23 12:57:16

+0

@Greg。謝謝。是的,它就像一束陽光! – Guge 2010-10-23 13:04:17

1

如何在Keyboard.PreviewKeyDown附加事件或UIElement.PreviewKeyDown路由事件的情況下,RoutedEventArgs.Handled屬性設置爲true這是F2鍵。

+0

我會試試看,但是這並不意味着F2永遠不會冒泡到DataGrid的父母身上,我的其他F2鍵綁定在那裏? – Guge 2010-10-08 16:41:06

+0

不,你在父節點上向* DataGrid傳遞*之前攔截它。 – bitbonk 2010-10-08 16:47:39

+0

我在DataGrid中放置了一個裝飾器,並在PreviewKeyDown中將Handeled設置爲true。這會停止隧道事件,因此DataGrid單元格不會進入編輯模式,但KeyDown事件不會冒泡,因此我的用於F2的Window輸入綁定也不起作用。 – Guge 2010-10-11 00:51:29