MVVM Light Messenger-wysyłanie i rejestrowanie obiektów
Czy ktoś mógłby mi dać przykład jak wysyłać i rejestrować własne obiekty między klasami za pomocą komunikatora MVVM Light lub wskazać mi tutorial, który to omawia (najlepiej konkretny przykład)? Próbowałem użyć Messenger, aby przekazać obiekt w moim projekcie do innej klasy, ale nigdy mi się to nie udało. Szukałem przykładów w Internecie, ale nie znalazłem niczego, co pokazuje mi, czego potrzebuję. Dzięki.
1 answers
Jesse Liberty z Microsoftu ma wielkikonkretny spacer o tym, jak wykorzystać wiadomości w świetle MVVM. Założeniem jest utworzenie klasy, która będzie działać jako typ wiadomości, subskrybować, a następnie opublikować.
public class GoToPageMessage
{
public string PageName { get; set; }
}
To zasadniczo wyśle wiadomość opartą na powyższym typie / klasie...
private object GoToPage2()
{
var msg = new GoToPageMessage() { PageName = "Page2" };
Messenger.Default.Send<GoToPageMessage>( msg );
return null;
}
Teraz możesz zarejestrować się dla danego typu wiadomości, który jest tą samą klasą zdefiniowaną powyżej i podać metodę, która zostanie wywołana po odebraniu wiadomości, w tym przypadku ReceiveMessage
.
Messenger.Default.Register<GoToPageMessage>
(
this,
( action ) => ReceiveMessage( action )
);
private object ReceiveMessage( GoToPageMessage action )
{
StringBuilder sb = new StringBuilder( "/Views/" );
sb.Append( action.PageName );
sb.Append( ".xaml" );
NavigationService.Navigate(
new System.Uri( sb.ToString(),
System.UriKind.Relative ) );
return null;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-02 12:42:26