MVVM có thể có. NET 4.5 với liên kết mô hình và sử dụng các điều khiển ràng buộc templated như FormView.
Đây là kỹ thuật tôi sử dụng:
Tôi thiết kế ViewModels cho mỗi UserControl và UserControl lồng nhau và sau đó sử dụng FormView luôn trong EditMode, trong đó tôi bao gồm các điều khiển liên kết với các thuộc tính mô hình bằng biểu thức Binding.
Tôi đặt SelectMethod và UpdateMethod của FormView. Cái đầu tiên trả về ViewModel và lần thứ 2 gọi TryUpdate () trên đó. Khi gửi lại, tôi luôn gọi phương thức Cập nhật của FormView trong Tải trước hoặc Tải. Theo cách đó, ViewModel luôn được cập nhật từ chế độ xem.
Tôi chạy logic bên trong ViewModel và trên PreRender, tôi khởi động lại chế độ xem để áp dụng bất kỳ thay đổi nào. Chìa khóa trong phương pháp này là đưa ViewModel vào chế độ xem (UserControl) bên ngoài chế độ xem (ví dụ ở cấp Trang) và tất nhiên đảm bảo rằng có thể tuần tự hóa và được lưu trong bộ nhớ cache trong ViewState hoặc bất kỳ nơi nào khác tôi chọn.
Cuối cùng, tôi vô hiệu hóa ViewState trong tất cả các điều khiển vì chúng bị "điều khiển" tối đa bởi ViewModel được lưu trong bộ nhớ cache và không cần trạng thái riêng.
Kỹ thuật này chưa bao giờ làm tôi thất bại cho đến nay và tôi chỉ ước mình có thể tìm ra giải pháp cho ràng buộc lệnh / nút, như WPF.