Tôi sẽ chỉ cho bạn một số đặc biệt hữu ích video bởi Jason Dolinger.
Xuất phát từ thế giới WinForms, việc thực hiện bất kỳ kiểu mẫu MVX nào có vẻ phức tạp hơn nó đáng giá nhưng sau khi làm việc với WPF vài năm nay, tôi có thể thành thật nói rằng tôi sẽ không xem xét bất cứ điều gì ít hơn. Toàn bộ mô hình được hỗ trợ out-of-the-box.
Trước hết, lợi ích chính là cho phép tách biệt thực sự giữa 'chế độ xem' và 'mô hình'.Điều đó có nghĩa là trong thực tế là nếu/khi mô hình của bạn cần thay đổi, nó có thể không cần xem và ngược lại.
Thứ hai, trong khi 'mô hình' của bạn có thể chứa tất cả dữ liệu bạn có thể cần trong 'chế độ xem', bạn có thể muốn trừu tượng dữ liệu đó theo cách mà 'mô hình' của bạn không hỗ trợ. Ví dụ: giả sử mô hình của bạn chứa thuộc tính ngày. Trong mô hình, nó có thể tồn tại chỉ như một đối tượng DateTime
nhưng chế độ xem của bạn có thể muốn hiển thị đối tượng theo một cách hoàn toàn khác. Nếu không có 'viewmodel', bạn phải sao chép thuộc tính trong 'model' để hỗ trợ chế độ xem hoặc sửa đổi thuộc tính có thể làm xáo trộn nghiêm trọng 'mô hình'.
Bạn cũng có thể sử dụng 'viewmodel' để tổng hợp các phần của mô hình tồn tại trong các lớp/thư viện riêng biệt để tạo điều kiện giao diện thông thạo hơn cho 'chế độ xem' để xử lý. Đó là rất không chắc rằng bạn sẽ muốn làm việc với dữ liệu trong mã của mình giống như cách người dùng muốn hoặc sẽ muốn dữ liệu đó được hiển thị cho họ.
Trên hết, bạn nhận được hỗ trợ cho liên kết dữ liệu hai chiều tự động giữa 'chế độ xem' và 'chế độ xem'.
Có thực sự là một bó toàn bộ các công cụ bổ sung mà tôi có thể đập vào nhưng Jason nói nó là xa hơn tốt hơn nên tôi có thể khuyên tôi xem video. Sau một vài ngày làm việc như thế này, bạn sẽ tự hỏi làm thế nào bạn đã bao giờ có được mà không có nó.
Chúc may mắn.
Tôi luôn xem MVVM như một biến thể của MVC. –