microsoft docs data context bindingcontext wpf mvvm drag-and-drop

wpf - docs - Para MVVM o no para MVVM esa es la pregunta



xamarin forms binding controls (5)

Estoy reescribiendo mi aplicación basada en formularios de Windows y voy a usar WPF. La aplicación se basa en gran medida en las técnicas de arrastrar y soltar, en un entorno muy gráfico. Utiliza "Informes de diseño", etc., arrastrando elementos a una cuadrícula, moviéndolos, haciendo clic con el botón derecho, etc., todo lo cual se guarda en una base de datos. También controle el flujo del programa dibujando diagramas de flujo, con enrutamiento y toma de decisiones, todos dibujados en el formulario y nuevamente guarde en una base de datos.

¿MVVM se presta a este tipo de aplicación, o estoy tratando de colocar una clavija redonda en un agujero cuadrado?

Tus pensamientos son apreciados.


Hay dos razones realmente buenas para ir con MVVM:

  1. Le ayuda a producir una lógica de negocios y un código de acceso a datos que se prueba con más facilidad por unidad
  2. Con muy poco esfuerzo adicional, todos tus UX deberían ser fáciles de modificar en Blend

Como se mencionó en varios pósters, cualquier evento relacionado con el UX se puede manejar en el código subyacente, pero debe exponer y acceder (leer y escribir) datos a través de sus Modelos de Vista para unir fácilmente sus Vistas.

En cuanto al esfuerzo adicional al que me he referido en el # 2, podría agregar fácilmente una propiedad estática a su objeto de la aplicación para determinar si la aplicación se está ejecutando en comparación con una vista que se abre en Blend. Si la vista está abierta en Blend, aproveche los datos simulados en lugar de hacer llamadas de acceso a datos. Aquí hay un código de ejemplo que funciona para verificar si Blend tiene una Vista abierta:

if (Application.Current == null || Application.Current.GetType() == typeof(Application)) { isInDesignMode = true; } else { isInDesignMode = false; }

Espero que esto ayude.


MVVM se presta muy bien a WPF. ¿Puedes hacer arrastrar y soltar con WPF y MVVM? Seguro que puede. Intenta buscar "WPF Drag Drop Behavior"


Mi opinión es usar MVVM, pero no religiosamente.

Quiero decir, use un modelo para sus vistas, pero también use algún código detrás cuando sea necesario (arrastre y suelte, haga doble clic). Encuentra un equilibrio que ayude a tu desarrollo, sin volverte loco.


Patrones como MVVM es hacer la vida más simple. Entonces, en cualquier caso, si siente que el patrón le está dando un mal momento, siéntase libre de romperlo o intente algo más. Seguir ciegamente cualquier cosa no te ayudará. Pero de todos modos MVVM también admite interacciones complejas de IU como arrastrar y soltar, creo que los comportamientos podrían ayudarlo en esto. Busque en Google los comportamientos de arrastrar y soltar de WPF y puede encontrar muchos tutoriales y códigos para ayudarlo en esto.


Si está buscando un mantenimiento y una verificación de las aplicaciones a largo plazo, asegúrese de poder hacerlo con MVVM y WPF. o simplemente ir con WPF. La curva de aprendizaje inicial de MMVM es muy pronunciada.