Bunu yapmak için Messenger kullanabilirsiniz: UserViewModel kullanıcıyı Gönder:
Messenger.Send<User>(userInstance);
sadece ilgilenen herkes için kullanıcı gönderirdi.
Ve CardViewModel bir alıcıyı kayıt: UserViewModel içinde bu konuda
Messenger.Send<String, UserViewModel>("Gimme user");
Ve tepki:: Ayrıca kullanıcıyı bağırarak için CardViewModel bir istek gönderebilir
Messenger.Register<User>(this, delegate(User curUser){_curUser = curUser;});
veya
Messenger.Register<String>(this, delegate(String msg)
{
if(msg == "Gimme user")
Messenger.Send<User>(userInstance);
});
(Gerçek bir senaryoda bir dizeyi değil, bir dizeyi kullanmanız daha iyi olur:)) Doğrudan yanıt bile verebilir ancak şu anda kontrol edemiyorum.
Sadece bu check out: Mvvm light Messenger
Denetimlerinizin uygulanmasına bağlıdır. ViewModel'i bir üst görünüm altında olan görünümler arasında mı paylaşıyorsunuz yoksa yalnızca iki bağımsız görünüm arasındaki özelliği/Komutu paylaşmaya mı çalışıyorsunuz? –
Söz konusu görünüm farklı görünümlerde iç içe olabilir ancak bağımsız bir görüntü modelinden bir özelliğe erişebilmesi gereken bir görünüm modelinde geçiş yapar. Benim somut durumda, şu anda oturum açmış olan kullanıcı hakkında bir bilgi almak (bir bağımsız UserViewModel'de saklanan ve saklanan) bir web servisine çağrı yapmak için bir CardViewModel. –