Một cách để xử lý các sự kiện trong MVVM và XAML là sử dụng các tính năng Blend Tương tác. Không gian tên này chứa các lớp InvokeCommandAction và CallMethodAction.
InvokeCommandAction cho phép bạn liên kết bất kỳ sự kiện nào với lệnh dạng xem trong khi CallMethodAction cho phép bạn ràng buộc bất kỳ sự kiện nào với phương thức kiểu xem.
Ví dụ, nếu bạn muốn để ràng buộc sự kiện DoubleClick của một nút đến một lệnh xem mô hình mà bạn sẽ làm như thế này:
<Button>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding Path=DoSomethingCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
Và tuyên bố namespace này:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
Tất cả các bạn cần phải tham khảo nó trong các dự án của bạn là cài đặt Expression Blend hoặc Expression Blend SDK.
Imo ràng buộc một sự kiện để một viewmodel không bao giờ là một ý tưởng tốt. Tất nhiên, nó phụ thuộc vào cách bạn muốn MVVM làm việc cho bạn, nhưng chúng tôi tách riêng các sự kiện, đó là logic ui, và các lệnh là logic nghiệp vụ. Chỉ muốn thêm điều này :) vào cuối nó phụ thuộc rất nhiều về cách thức và những gì bạn muốn đạt được. – dowhilefor
Cảm ơn, bình luận tốt đẹp tôi sẽ ghi nhớ điều này. Bây giờ tôi chỉ muốn mã đằng sau các tệp để trống. Nhưng từ tất cả những gì tôi đã đọc bạn là đúng;) – jefsmi
@ dowhilefor đó là một câu trả lời của chính nó - và một tốt nhất. Tôi đề nghị bạn viết một cái gì đó lên. :) – ANeves