Można użyć Messenger, aby to zrobić: Wyślij użytkownikowi w UserViewModel:
Messenger.Send<User>(userInstance);
po prostu wysłać użytkownikowi wszystkich zainteresowanych.
i zarejestrować odbiorcę w swoim CardViewModel:
Messenger.Register<User>(this, delegate(User curUser){_curUser = curUser;});
lub można również wysłać żądanie z CardViewModel dla krzycząc użytkownika:
Messenger.Send<String, UserViewModel>("Gimme user");
i reagują na to w UserViewModel:
Messenger.Register<String>(this, delegate(String msg)
{
if(msg == "Gimme user")
Messenger.Send<User>(userInstance);
});
(Lepiej używać wyliczenia, a nie ciągu w rzeczywistym scenariuszu:))
Perhabs można nawet odpowiedzieć bezpośrednio, ale nie mogę go sprawdzić w tej chwili.
Wystarczy sprawdzić to: Mvvm light Messenger
To zależy od implementacji elementów sterujących. Czy udostępniasz ViewModel między widokami, które znajdują się w widoku nadrzędnym, lub po prostu próbujesz udostępnić właściwość/polecenie między dwoma niezależnymi widokami? –
Widok, o którym mowa, może być zagnieżdżony w różnych widokach, ale jest przekazywany na modelu podglądu, który musi mieć dostęp do właściwości z niezależnego modelu widoku. W moim konkretnym przypadku jest to CardViewModel, który potrzebuje pobrać informacje o aktualnie zalogowanym użytkowniku (obsługiwane i przechowywane w niezależnym UserViewModel), aby nawiązać połączenie z serwisem internetowym. –