Giả sử tôi có Chế độ xem được gắn với Chế độ xemMô hình A có bộ sưu tập quan sát Khách hàng.WPF Converters có thể được sử dụng như thế nào trong một mẫu MVVM?
Lợi thế của mẫu MVVM này là tôi cũng có thể liên kết Chế độ xem với Chế độ xemModel B làm đầy dữ liệu với các dữ liệu khác nhau.
Nhưng điều gì xảy ra nếu trong số Xem trình chuyển đổi chuyển đổi để hiển thị khách hàng của tôi, ví dụ: Tôi có một "ContractToCustomerConverter" chấp nhận một Hợp đồng và trả về Khách hàng thích hợp được hiển thị.
Vấn đề với điều này là bộ chuyển đổi tồn tại bên ngoài mẫu MVVM và do đó không biết rằng ViewModel của tôi có nguồn khác cho khách hàng.
- là có một cách để Xem để vượt qua các ViewModel vào Chuyển đổi để nó tham gia vào tách mà mô hình MVVM cung cấp?
- có cách nào cho tôi bằng cách nào đó bao gồm Trình chuyển đổi trong ViewModel của mình để trình chuyển đổi sử dụng các phụ thuộc hiện tại mà ViewModel có sẵn không?
- hoặc là bộ chuyển đổi chỉ mã được tôn vinh và do đó không được sử dụng trong mẫu MVVM, vì vậy nếu bạn đang sử dụng MVVM thì bạn chỉ cần tạo "bộ chuyển đổi" của riêng mình (phương thức trên lớp ViewModel). , Đối tượng hiển thị, FlowDocuments, v.v ... để được sử dụng trên chế độ xem, thay vì sử dụng trình chuyển đổi ở tất cả?
(tôi đi theo những câu hỏi sau khi nhìn thấy việc sử dụng các chuyển đổi trong ứng dụng bản demo WPF mà đi kèm với các MVVM Template Toolkit download, xem "Messenger mẫu" sau khi giải nén nó.)
OK Tôi thấy quan điểm của bạn về lượt xem không nên được chia sẻ trên các máy ảo khác nhau, nhưng ViewModel sẽ có thể được chia sẻ bởi các Chế độ xem khác nhau, do đó lợi thế của khả năng thử nghiệm của MVVM, phải không? Bạn sẽ có thể kết nối chế độ xem mô hình và mô hình giả lập với ViewModel để đảm bảo rằng tất cả các kết hợp dữ liệu mà nó nhận được từ mô hình giả tạo sẽ tạo ra các giá trị thuộc tính chính xác được hiển thị cho khung nhìn. Bạn có đồng ý không? –