2009-09-15 39 views
5

Tôi rất muốn có thể sử dụng số MouseBinding thông thường để chụp sự kiện CTRL-Click trên số TextBlock của mình. Thật không may các tài sản Command không phải là một tài sản phụ thuộc và tôi đang sử dụng MVVM, vì vậy tôi không thể ràng buộc nó vào viewmodel của tôi.Nếu chúng ta không thể ràng buộc một lệnh của MouseBinding, chúng ta phải làm gì?

Làm cách nào Microsoft có thể bỏ qua chức năng cơ bản này? Có cách nào dễ dàng để phát hiện CTRL-Clicks và ràng buộc chúng vào một lệnh trong viewmodel của tôi?

+0

Vẫn không có giải pháp nào khác ngoại trừ thư viện đó? –

Trả lời

4

Ban đầu tôi tin rằng tôi đang đề cập đến việc sử dụng thành viên InputBindings của TextBlock.

Trong .NET 4 InputsBinding s nay kế thừa từ Freezable, vì vậy bây giờ các Command tài sản là bất động sản phụ thuộc (xem Binding support in InputBindings), giải quyết vấn đề ràng buộc.

Nếu bạn bị mắc kẹt với .NET 3.5, bạn có thể tạo một số thuộc tính đính kèm cho bất kỳ loại sự kiện nào bạn muốn. Trong hàm OnCommandChanged, hãy thêm trình xử lý sự kiện và bộ lọc dựa trên các công cụ sửa đổi (như phím Control hoặc ClickCount) trong phương thức PropertyChangedCallback của bạn.

+0

Liên kết bị hỏng. – Deantwo

+1

Liên kết được cập nhật. –

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