Pregunta

Puede alguien explicar cómo el patrón mediador trabaja con varias instancias.

Mi código en la vista:

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

y en el modelo de vista:

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

Esto funciona encontrar, siempre y cuando sólo hay una instancia de la vista -. ViewModel par

¿Cómo lo resuelvo con varias instancias?

¿Fue útil?

Solución

utilizo una solución alternativa. MyView implementa una interfaz de IMyView que contiene el método Close. El objeto MyViewModel asocia la vista y por lo que puede llamar al método Close través de la interfaz.

Si está interesado en un ejemplo concreto entonces es posible echar un vistazo a:

WPF Application Framework (WAF)

Otros consejos

No sé cómo funciona su aplicación particular del patrón de mediador, pero en la mía pueda enviar más información que sólo cadenas.

Por ejemplo:

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

y en el modelo de vista:

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

En este ejemplo, el modelo de vista se hace pasar como un parámetro a la vista. La vista puede entonces verificar que el mensaje está siendo enviado desde su modelo de vista.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top