Cita:
Iniciado por caroldev13
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
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
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 originalprivate void SomeButton_Click(object sender, RoutedEventArgs e) =>
(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?