Pregunta

Tengo control ListView en mi solicitud que se enganchan a la colección de CustomObject Lista << strong> CustomObject >. La CustomObject Tiene vista separada. Este ListView tiene particular modelo de vista.

El _customobject Lista colección se containted en la clase ListView modelo de vista.

Mi consulta:

Quiero invocar una vista que muestra propiedades del objeto personalizado, cuando el usuario haga doble clic en cualquier fila de ListView. El ListView doble clic comando se enganchan a la ListViewDoublClick Comando en el modelo de vista. El CustomObject está en el argumento de evento de vista de lista de comandos doble clic. Para lograr esto tengo que pasar el objeto personalizado (o una propiedad única de Identificación del objeto personalizado a través del cual puedo recuperar el objeto personalizado a partir de la colección) como parámetro del comando.

Por favor, me sugieren la solución !!

¿Fue útil?

Solución

La forma más sencilla de hacerlo es añadir un doble controlador de eventos click a la lista. Recuerde: MVVM no significa ningún código en la vista! Esto significa que la vista sólo se ocupa de vista de las preocupaciones. Usted puede hacer un muy buen argumento de que los EventArgs solamente son significativos para la vista y si quieres pasarlo al modelo de vista que sólo debe pasar la información relevante. Si usted tiene que hacer algo como la extracción de datos de un EventArgs para pasarlo al modelo de vista, que es aceptable y adecuado ... y mejor que pasar los EventArgs abajo en el modelo de vista, en mi humilde opinión.

(estoy seguro de que obtendrá un cierto desacuerdo en este punto, pero en relación con la interacción de interfaz de usuario es una vista preocupación y si la alternativa es escribir un comportamiento o el uso de un marco para conseguir un único mando a trabajar en una sola página, recuerde:. YAGNI y patrones no son religión)

Varios de los marcos MVVM le permiten hacer esto (aunque hay mucha discusión acerca de si es una buena idea o no). En particular, el kit de herramientas MVVM Light agregado hace esto un poco de tiempo para apoyar arrastrar y soltar (si no recuerdo el blog correctamente).

Si no está utilizando un marco MVVM, he enrollado escribir un comportamiento para permitir que haga esto si iba a hacer lo mismo en varios lugares. En este caso, por lo general extraer la información que me importa de los EventArgs (es decir, es probable que no quiere realmente los argumentos completos del evento, pero es probable que importa qué elemento se ha hecho clic y tal vez algunos otros bits de datos).

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