Bạn có thể sử dụng Messenger để làm điều này: Gửi người dùng trong UserViewModel:
Messenger.Send<User>(userInstance);
sẽ chỉ gửi cho người dùng cho bất cứ ai quan tâm.
Và đăng ký một người nhận trong CardViewModel của bạn:
Messenger.Register<User>(this, delegate(User curUser){_curUser = curUser;});
hoặc bạn cũng có thể gửi yêu cầu từ CardViewModel của bạn cho la hét người dùng:
Messenger.Send<String, UserViewModel>("Gimme user");
Và phản ứng trên rằng trong UserViewModel:
Messenger.Register<String>(this, delegate(String msg)
{
if(msg == "Gimme user")
Messenger.Send<User>(userInstance);
});
(Bạn nên sử dụng enum chứ không phải chuỗi trong trường hợp thực tế:))
Perhabs thậm chí bạn có thể phản hồi trực tiếp nhưng tôi không thể kiểm tra tại thời điểm này.
Chỉ cần kiểm tra này ra: Mvvm light Messenger
Tùy thuộc vào việc thực hiện các điều khiển của bạn. Bạn có đang chia sẻ ViewModel giữa các chế độ xem dưới chế độ xem gốc hoặc bạn chỉ đang cố gắng chia sẻ thuộc tính/Lệnh giữa hai chế độ xem độc lập? –
Chế độ xem được đề cập có thể được lồng trong các chế độ xem khác nhau nhưng nó chuyển tiếp trên chế độ xem có thể truy cập thuộc tính từ chế độ xem độc lập. Trong trường hợp cụ thể của tôi đó là một CardViewModel mà cần phải lấy một thông tin về người dùng hiện đang đăng nhập (xử lý và lưu trữ trong một UserViewModel độc lập) để thực hiện cuộc gọi đến một webservice. –