Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/05/2017, 14:18
agleiva
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Explicación MVVM con WPF

Cita:
Iniciado por caroldev13 Ver Mensaje
Los metodos de las entidades los declararía en el view model? es decir, queries de las bd, calculos, etc.
No, en general la capa de acceso a datos deberia estar separada. Tanto con Entity Framework como con NHibernate (las 2 tecnologías de acceso a datos por excelencia en .NET) se pueden crear repositorios genéricos, con lo cual tus VMs tambien pueden ser genéricos (una enorme ventaja con respecto a java, donde los generics no sirven para nada). Es decir, tus VM invocarían a tus repositorios y éstos se encargarían de hacer las queries y guardar en la DB o en donde sea.

Cita:
Iniciado por caroldev13 Ver Mensaje
Cuando te refieres a declarar las entidades es aplicar los get y set y el notifychanged no?
Si, los "get y set" se llaman Properties y son otra de las grandes ventajas de C# con respecto a java.

Cita:
Iniciado por caroldev13 Ver Mensaje
solo me quedaría comprender el tema de los delegatecommand.
El DelegateCommand es una indireccion muchas veces innecesaria. Por eso te mencionaba el tema del grado de purismo que quieras aplicar. Los mas puristas dicen que no debe existir Code Behind en las vistas, pero esto es exagerado e injustificado en mi opinion.

El DelegateCommand se justifica si tenés varios elementos visuales que invoquen la misma acción (por ejemplo un Button y además un MenuItem dentro de un ContextMenu o algo por el estilo). Caso contrario, yo usaría code behind:

Código C#:
Ver original
  1. private void SomeButton_Click(object sender, RoutedEventArgs e) =>
  2.     (this.DataContext as MyViewModel)?.SomeAction();

que es mas directo que tener que declarar un DelegateCommand en el VM para ejecutar la acción SomeAction. Me explico?