none
Interactuar con controles de usuario MVVM RRS feed

  • Pregunta

  • Buenas,

    Tengo un proyecto en WPF en el que la ventana principal tiene un Grid vacío al que le voy asignando el contenido mediante hijos.

    El método que utilizo para hacerlo es el siguiente:

    private static void CargarControl(UserControl obj, Grid grid)
            {
                grid.Children.Clear();
                grid.Children.Add(obj);
            }

    Este método lo llamo desde el evento click de las diferentes opciones del menú.

    Por otro lado, tengo diferentes ViewModels para utilizarlos de DataContext en el UserControl correspondiente.

    Mi pregunta es, ¿se puede referenciar el Grid principal de la ventana desde el ViewModel para asignar el UserControl mediante un Command en lugar de utilizar el evento Click en el Code Behind?

    Muchas gracias por la ayuda.


    Aprendiendo a programar.

    • Cambiado webJose viernes, 27 de febrero de 2015 15:21
    viernes, 27 de febrero de 2015 12:51

Respuestas

  • >>¿se puede referenciar el Grid principal de la ventana desde el ViewModel para asignar el UserControl mediante un Command en lugar de utilizar el evento Click en el Code Behind?

    desde un viewmodel no puedes referenciar de forma directa un control, para eso existe los binding

    si podrias usar alguna tecnica como Publisher/Subscriber para que al user control envie una accion a la view del modelo y asi comunicar las view

    Communication between ViewModels with MVVM

    el tema es qe la implementacion de esto depende de como implementes MVVM, o sea que libreria uses o si lo implementas de forma manual

    lo que tendrias que comunicar son los viewmodel de la ventana y del usercontrol, imagine que el user control usa un viewmodel diferente, si es el mismo podria ser directo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 27 de febrero de 2015 14:48