Tôi đang làm việc trên một ứng dụng MVVM lớn. Tôi đang sử dụng bộ công cụ ánh sáng MVVM cho việc này. Ứng dụng này giống như một trình duyệt web với các nút quay lại và tiến lên. Chế độ xem chính là điều khiển người dùng. Tôi đặt các nút quay lại và tiến lên trong điều khiển người dùng chính. Chế độ xem chính lần lượt có các điều khiển người dùng. Điều khiển người dùng thay đổi khi các nút quay lại và tiến lên được nhấp. ViewModel chính theo dõi điều khiển người dùng hiện tại và tải phần tiếp theo tùy thuộc vào nút bấm.MVVM: Truyền thông
Tất cả các điều khiển người dùng này được tải tùy thuộc vào lựa chọn (ID) được thực hiện trong bước đầu tiên. Giả sử, chế độ xem chính là màn hình tìm kiếm và chúng tôi chọn khách hàng. Màn hình tiếp theo sẽ là Địa chỉ, Thanh toán, Yêu cầu, v.v. Các màn hình này không chia sẻ bất kỳ dữ liệu nào. Nhưng dữ liệu dành cho cùng một khách hàng.
Vì vậy, thực tiễn tốt là lưu trữ ID khách hàng trong chế độ xem chính? Nếu tôi làm điều này, tôi nên có một sự kiện UserControl_Loaded ràng buộc với một lệnh, nơi mà tôi sau đó sẽ yêu cầu Địa chỉ và thông tin thanh toán.
Hoặc tôi có thể di chuyển các nút (nút quay lại và tiến lên) đến từng điều khiển người dùng thay vì chế độ xem chính, Chuyển ID khách hàng bằng thông báo sẽ tải chế độ xem tiếp theo.
Điều nào tốt hơn?
Để phân tách mọi thứ, hãy cân nhắc sử dụng MVVM Light 'Messenger' để xuất bản các tin nhắn' CustomerSelected' (có thể chứa Id), thay vì sử dụng lệnh. Các điều khiển khác của bạn sau đó có thể đăng ký tin nhắn này. –
Suy nghĩ trực tiếp của tôi về điều này là, nếu các nút quay lại và chuyển tiếp nằm trong giao diện Chính, tùy thuộc vào nguồn (Chế độ xem hiện tại), tôi cần gửi tin nhắn đến các kiểu xem. Tôi muốn tránh điều đó (gửi một tin nhắn từ chế độ xem chính tùy thuộc vào chế độ xem hiện tại). Vì vậy, tôi đã nghĩ đến sự kiện User_Control Loaded. – katie77
Tại sao bạn muốn tránh gửi tin nhắn? –