2012-04-18 57 views
6

Tôi có một ứng dụng mà tôi có một UserControl bằng thanh công cụ trong đó. Thanh công cụ này có một nút Execute mà lần lượt có lệnh của nó được gắn với một lớp dẫn xuất ICommand mà mô hình xem hiển thị dưới dạng thuộc tính.Liên kết lối tắt bàn phím với lệnh trong kiểu xem trong WPF

<Button Grid.Row="0" Command="{Binding ExecuteCommand}">Execute</Button> 

Bây giờ, tôi cũng muốn liên kết điều này với phím tắt (F5). Điều này cần phải được ràng buộc trong bối cảnh của UserControl kể từ khi, nó chỉ áp dụng nếu điều này usercontrol có thể nhìn thấy vào lúc này.

Một tùy chọn khác là liên kết nó với KeyDown của hộp văn bản thực sự chứa văn bản để thực thi, nhưng tôi thực sự run rẩy khi nói đến cách định tuyến sự kiện từ điều khiển đến lệnh trong viewmodel mà không thực sự hacks xấu xí trong code-behind của usercontrol.

Bất kỳ con trỏ nào được đánh giá cao!

+0

bản sao có thể có của [Phím tắt trong WPF] (http://stackoverflow.com/questions/1361350/keyboard-shortcuts-in-wpf) –

+1

Nó nằm dọc theo cùng một dòng, nhưng nó không thực sự là cùng một câu hỏi. Điều đó nói về cách ràng buộc các lệnh chuẩn, trong khi điều này liên kết một lệnh tùy chỉnh với một thuộc tính trong các mô hình khung nhìn. Các giải pháp hóa ra là tương tự nhưng vẫn còn, những thứ khác nhau. – Dervall

+0

@DanielHilgarth: vâng tôi không nghĩ rằng nó là một bản sao, hoặc ít nhất là giải pháp được cung cấp trong câu hỏi khác là người nghèo (đó là giải pháp WinForms cho một vấn đề MVVM). – user7116

Trả lời

24

Có một câu trả lời khác đã biến mất vì một lý do nào đó. Điều này làm việc tốt:

<UserControl.InputBindings> 
    <KeyBinding Key="F5" Command="{Binding ExecuteCommand}" /> 
</UserControl.InputBindings> 

Tôi muốn cung cấp tín dụng cho anh chàng đó nếu có thể. Vui lòng xuất hiện lại :)

2

Afaik, không có cách nào để liên kết trực tiếp với phím bấm, nhưng có một số công việc xung quanh. Có vẻ như những người khác cũng gặp vấn đề này, bạn có thấy this post không? Đề xuất khác của tôi là xem xét attached commands.

Các vấn đề liên quan