Tôi thích ý tưởng MVVM của một RelayCommand được hiển thị bởi ViewModel. Đó là tốt đẹp và thanh lịch, cho các hoạt động có thể được thực hiện mà không có thêm người dùng đầu vào. Đơn giản. Có thể kiểm tra.MVVM và các lệnh hiển thị thêm GUI
Tuy nhiên, không phải tất cả các thao tác đều không có giao diện người dùng. Một số yêu cầu xác nhận ("Bạn có chắc chắn muốn xóa không?"). Những người khác yêu cầu thêm thông tin. Việc mở một tệp có thể đòi hỏi bất cứ thứ gì từ hộp thoại Tệp Mở thông qua Trình hướng dẫn Nhập đầy đủ.
Cách tốt nhất, trong ứng dụng MVVM, để viết lệnh yêu cầu nhập của người dùng là gì? Có một mô hình được thiết lập để giải quyết vấn đề này bằng cách tiêm phụ thuộc không? Tôi có nên viết một trình xử lý KeyDown trong đoạn mã sau và có thực thi một cách rõ ràng sự kiện không? Tôi có nên quay trở lại RoutedUICommand và đặt tất cả mã "hiển thị GUI tiếp theo" trong Chế độ xem của tôi không? Hay có điều gì đó hiển nhiên là tôi hoàn toàn mất tích?
Phần "hiển thị hộp thoại Mở" có thể được sử dụng lại; nhưng sau đó bạn cần phải làm một cái gì đó với tập tin đó, và đó sẽ là ứng dụng cụ thể, vì vậy tôi không chắc chắn tôi thấy cách hoạt động này. Bạn có thể đưa ra một ví dụ về cách bạn sẽ làm điều này với hành vi? –
@ joe-white Gửi tin nhắn định tuyến lên ngăn xếp UI sẽ được thu thập và chuyển tiếp đến ViewModel ... Hoặc nếu bạn liên kết với thuộc tính trên ViewModel, bạn sẽ biết tệp được gán khi thuộc tính thay đổi. –