Tôi cảm thấy cộng đồng MVVM đã trở nên quá nhiệt tình như các lập trình viên OO trong những năm 90 - đó là một MVVM sai lầm đồng nghĩa với việc không có mã. Từ câu hỏi StackOverflow đã đóng của tôi :
Nhiều lần tôi bắt gặp các bài đăng ở đây về ai đó đang cố gắng thực hiện tương đương trong XAML thay vì mã phía sau. Lý do duy nhất của họ là họ muốn giữ mã của họ phía sau 'sạch'. Sửa lỗi cho tôi nếu tôi sai, nhưng không phải là trường hợp:
XAML cũng được biên dịch - thành BAML - sau đó tại thời gian chạy phải được phân tích cú pháp thành mã. XAML có khả năng có thể có nhiều lỗi thời gian chạy hơn vì chúng sẽ không được trình biên dịch chọn trong thời gian biên dịch - từ cách viết không chính xác - những lỗi này cũng khó gỡ lỗi hơn. Đã có mã phía sau - thích hay không là LaunchizeComponent (); phải được chạy và tệp .gics chứa trong đó chứa một loạt mã mặc dù nó có thể bị ẩn. Có phải nó hoàn toàn là tâm lý? Tôi nghi ngờ đó là các nhà phát triển đến từ một nền tảng web và thích đánh dấu trái ngược với mã.
EDIT: Tôi không đề xuất mã phía sau thay vì XAML - sử dụng cả hai - Tôi cũng thích thực hiện ràng buộc của mình trong XAML - Tôi chỉ chống lại mọi nỗ lực để tránh viết mã phía sau đặc biệt trong ứng dụng WPF - đó là một sự hợp nhất cả hai để có được nhiều nhất của nó.
CẬP NHẬT: Ý tưởng thậm chí không phải của Microsoft, mọi ví dụ trên MSDN cho thấy cách bạn có thể thực hiện trong cả hai.