Galasoft Messenger Витрина - PullRequest
       6

Galasoft Messenger Витрина

0 голосов
/ 21 декабря 2011

Я хочу открыть окно из моей ViewModel. Как я могу создать и показать его с помощью Galasoft Messenger?

public partial class View {
    public View() {
        InitializeComponents();
        //Register Open message
    }

    //This is called when ViewModel sends a message
    public void OpenView() {
        new View().Show();
    }
}

public class ViewModel {
    public ViewModel() {
        //Send message to open some view
    }
}

1 Ответ

2 голосов
/ 21 декабря 2011

В этой ситуации не требуется передавать объект из ViewModel в View;поэтому, просто регистрируя объект типа, передавая ноль, НО токен является ключевым.

public partial class View {
    public View() {
        InitializeComponents();
        //Register Open message BEFORE ViewModel calls Messenger.Default.Send
        Messenger.Default.Register<object>(this, ViewModel.OpenViewToken, p => { OpenView(); });
    }

    //This is called when ViewModel sends a message
    public void OpenView() {
        new View().Show();
    }
}

public class ViewModel {
    public static readonly Guid OpenViewToken = Guid.NewGuid();
    public ViewModel() {
        Messenger.Default.Send<object>(null, OpenViewToken);
    }
}
...