DotNetCampania
Il primo portale campano dedicato allo sviluppo software con tecnologie Microsoft

MVVM c# WPF

rated by 0 users
Non risposto This post has 0 verified answers | 23 Replies | 2 Followers

Top 25 Partecipanti
23 Post
Punteggio 265
Fabio Miceli posted on 18 Jan 2012 17:46

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 ?

  • | Punteggio Post: 20

All Replies

Top 25 Partecipanti
23 Post
Punteggio 265

come non detto....mi ero dimenticato di mettere la classe in una cartella !!!!!!

  • | Punteggio Post: 20
Top 10 Partecipanti
Maschio
95 Post
Punteggio 1,330

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

  • | Punteggio Post: 5
Top 25 Partecipanti
23 Post
Punteggio 265

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.

  • | Punteggio Post: 20
Top 10 Partecipanti
Maschio
95 Post
Punteggio 1,330

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

  • | Punteggio Post: 20
Top 25 Partecipanti
23 Post
Punteggio 265

quindi (prima che stravolgo la mia App) se faccio il lavoro che ho scritto di sopra sono nella strada giusta ??!!!

 

  • | Punteggio Post: 20
Top 10 Partecipanti
Maschio
95 Post
Punteggio 1,330

è 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

 

  • | Punteggio Post: 20
Top 25 Partecipanti
23 Post
Punteggio 265

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)

  • | Punteggio Post: 20
Top 10 Partecipanti
Maschio
95 Post
Punteggio 1,330

e quella classe è un viewmodel Big Smile

  • | Punteggio Post: 20
Top 25 Partecipanti
23 Post
Punteggio 265

ok...vado così allora !!!!!Stick out tongue

un'ultima cosa......potresti(quando hai tempo) farmi qualche esempio di ICommend per i metodi AddTo e DeleteObject nei vari Button

grazie infinite

  • | Punteggio Post: 5
Pagina 2 di 2 (24 elementi) < Indietro 1 2 | RSS

Associazione Culturale DotNetCampania - C.F.: 95127870632

Powered by Community Server (Commercial Edition), by Telligent Systems