2010-10-19 19 views
5

Una de nuestras aplicaciones heredadas se ejecuta en VB.net (nivel 3) y DataTable se utiliza como DTO. Pero queremos convertir la aplicación usando WPF, arquitectura MVVM. ¿Puedo implementar MVVM usando Datatable como DTO o tengo que crear clases para representar estas tablas de datos e implementar la arquitectura MVVM? ?MVVM usando DataTable?

Respuesta

2

No hay nada en MVVM que impida el uso de un DataTable/DataSet como modelo. La 'M' en MVVM puede ser cualquier cosa realmente. Es el V y el VM los que están más claramente definidos. Simplemente haga que su ViewModel actúe como intermediario para su View y el DataRow subyacente. No debería ser más complicado que si tu modelo se generara clases de servicio web.

+0

k, thnx. En Class podemos implementar INotifyPropertychanged e incluso podemos escribir los call backs, coercing, etc. Pero en Datatable o en DataRow, ¿cómo podemos identificar la notificación de cambio? Eso es lo que me forzó a hacer esta pregunta –

+0

DataTable tiene un evento RowChanged que puede usar. Pero probablemente no necesites usarlo. ViewModel puede generar eventos PropertyChanged según sea necesario. El DataRow no debe cambiar demasiado debajo del ViewModel si ViewModel controla los datos que entran y salen del DataRow. – Josh

1

Mire las diferencias entre usar un modelo anémico vs. rico en MVVM. En el modelo anémico; que es lo que obtienes con una tabla de datos, implementa propiedades y conecta todos los eventos de INotify en tu VM. Si utiliza la ruta del modelo enriquecido, como construir sus propios objetos comerciales o utilizar un marco como CSLA, obtendrá mucha más acción de su modelo y su máquina virtual será mucho más pequeña/sencilla.

Cuestiones relacionadas