Pergunta

Alguém pode explicar como o Mediator trabalha com várias instâncias.

Meu código no modo de exibição:

public MyView() {
    Mediator.Register("CloseWindow",()=>Close());
}

e no ViewModel:

public SomeMethod() {
    Mediator.Notify("CloseWindow");
}

Isso funciona encontrar, desde que haja apenas uma instância do Ver -. ViewModel par

Como faço para resolver isso com várias instâncias?

Foi útil?

Solução

Eu uso uma solução alternativa. implementos MyView um IMyView de interface que contém o método Close. O objeto MyViewModel associa a vista e por isso pode chamar o método Close através da interface.

Se você estiver interessado em um exemplo concreto, então você pode dar uma olhada em:

WPF Application Framework (WAF)

Outras dicas

Eu não sei como a sua implementação em particular das obras Mediator, mas na minha você pode enviar mais informações do que apenas strings.

Por exemplo:

public MyView() {
    Mediator.Register<CloseWindowMessage>(message =>
    {
        if (message.ViewModel == DataContext) Close();
    });
}    

e no ViewModel:

public SomeMethod() {
    Mediator.Notify(new CloseWindowMessage(this));
}

Neste exemplo, o ViewModel passa-se como um parâmetro para a vista. A visão pode então verificar que a mensagem está sendo enviada a partir de seu modelo de vista.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top