ciao ragazzi
mi sono appena iscritto a questo forum, è da poco che ho iniziato a programmare in c# WPF.
ho un piccolo problema con MVVM, in pratica non riesco a fare il ViewModel del selectedItem di datagrid con il selectedItem di un ListView in una finestra modale.
datagrid è inizializzato con una tabella ordini che è associata ad articoli, e la lista articoli è nel ListView della window modale.
bindando il datacontext della Window Articoli con datagrid.selecteditem, al ritorno non riesco ad avere i valori di ListView.selectedItem
nella window principale faccio wArticoli.datacontext = datagrid.selecteditem
e nel Button di conferma della window articoli faccio datacontext = ListView.SelectedItem
non ho nessun aggiornamento !!!
qualcuno saprebbe dirmi dove sbaglio ?
come non detto....mi ero dimenticato di mettere la classe in una cartella !!!!!!
a breve o io o antonio pubblicheremo la demo della sessione che abbiamo tenuto all'ugialt.net, all'interno c'è una classe che implementa INotifyPropertyChanged (la classe si chiama LinkInfo) puoi copiare quella implementazione che si basa sulle lambda espression e la reflection se ti fa comodo
ciao Nezumi
la classe di implementazione INotifyPropertyChanged lo creata,( penso che funzioni) ma il fatto che non la vedo a Runtime penso che sia perchè non la bindo alla Window.
attualmente la Window è bindata con l'istanza di EDM, quindi se è così, innanzitutto (correggimi se sbaglio) dovrò creare tutte le classi di business e poi bindarle alle varie Window della mia App.
il concetto è che il DataContext della view (anche se parliamo di una region della tua view "globale") è il viewmodel stesso (che implementa l'interfaccia di cui sopra) con entity framework ci devi interagire solo per tirare su i dati (e riversarli nei tuoi viewmodel) o per persisterli, eseguendo un command per esempio
quindi (prima che stravolgo la mia App) se faccio il lavoro che ho scritto di sopra sono nella strada giusta ??!!!
è che non ho ben capito cosa intendi per classe di business, intendi il view-model? perchè concettualmente sono due cose diverse, alla fine il viewmodel è un "adattamento" dei dati del modello in modo che siano utilizzabili dalla view.
...poi i tuoi VM esporranno dei command che si occuperanno di interagire con il modello (che questo significhi richiamare un servizio, o EF o qualsiasi altra cosa ti venga in mente come logica applicativa)
mvvm è un pattern che si applica alla UI, mentre quando mi parli di classi di business mi viene da pensare che stai parlando di classi contenenti logica di business. che sono quelle che dovresti richiamare da VM per disaccoppiare la logica di business dal presentation layer
in pratica:
Presentation Layer (la tua UI sviluppata con MVVM) - Business Layer - Data Layer
forse nell'esprimermi faccio confusione...
correggimi se sbaglio:
le classi che voglio creare dovrebbero essere l'adattamento dei dati del modello (per modello intendo EDM) con tutte le proprietà interfacciate con INotifyPropertyChanged.
poi la classe la bindo alla window (la view)
e quella classe è un viewmodel
ok...vado così allora !!!!!
un'ultima cosa......potresti(quando hai tempo) farmi qualche esempio di ICommend per i metodi AddTo e DeleteObject nei vari Button
grazie infinite
Associazione Culturale DotNetCampania - C.F.: 95127870632