MVVM casos Mediador múltiplas
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?
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:
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.