Vito Arconzo's Blog

.net, .net, .net & windows presentation foundation

Recent Posts

Tags

News

  • This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights. The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer

    MVP



    Ciao Flavio!

    Add to Technorati Favorites

    Subscribe in NewsGator Online

    Skype Me™!

Community

Email Notifications

Link Utili

Archives

MVVM & Attached Behavior

Uno dei primi “scogli” in cui ci si scaglia contro durante lo studio del Model-View-ViewModel è la visualizzazione di qualcosa di conseguenza alla selezione di un item da, appunto, un ItemList.

Per fare un esempio pratico, immaginiamo di avere una ListBox con l’elenco delle Categorie Prodotti e vogliamo che, alla selezione di una categoria, venga visualizzato l’elenco dei prodotti presenti in quella categoria. ovviamente, in un’applicazione “non” MVVM la soluzione sarebbe la gestione dell’evento di selezione e cosi via…

In un’applicazione MVVM, invece, lo scopo principale è proprio quello di disaccoppiare UI dalla logica evitando, quindi, l’uso degli eventi a favore dei Commands di WPF.

Le soluzione da applicare con il MVVM sono diverse. Le due che ho preferito sono:

1) Utilizzo di una property SelectedCategory nel ViewModel che viene “bindata” alla property SelectedItem della ListBox. In questo modo, nel setter della property possiamo gestire il cambio di categoria con le relative operazioni da eseguire in questo caso. Troppo macchinosa.

2) Più elegante, invece, è l’uso di Attached Behavior di WPF. Questo pattern, basato sulle Attached Property, permette di incapsulare un comportamento in una classe al di fuori del VisualTree applicando questo, impostando la attache property relativa ai soli controlli desiderati. Come nella figura seguente in cui viene associato un SelectionChanged ad un command che effettua alcune operazioni.

image

Su CodeProject trovate un interessante articolo di Josh Smith Introduction to Attached Behaviors in WPF mentre, in italiano, come al solito c’è l’amico Corrado che ci toglie sempre ogni dubbio WPF Attached Behaviors Wink

Posted: May 06 2009, 12:00 PM by VitoA | with no comments
Filed under: ,