2010-10-03 7 views
10

J'essaie d'apprendre MVVM Light et je cherche un bon exemple de base qui montre un modèle et comment charger différentes vues.Vous cherchez un exemple MVVM Light simple

Le modèle que je vois après avoir téléchargé MVVM Light n'a pas de modèles et une seule vue. (http://www.galasoft.ch/mvvm/creating/)

D'autres choses que j'ai trouvées sont plus complexes et un peu déroutantes quand tout ce que je veux voir sont les bases.

Merci.

Répondre

8

J'ai trouvé cet exemple utile:

http://apuntanotas.codeplex.com/

+1

Le "modèle" dans cette e xample implémente INotify. J'ai tendance à penser que le modèle utilise des objets POCO (Plain Old CLR Object) et que ModelView implémente l'INotify pour permettre la liaison de données. –

1

J'ai personnellement trouvé ces d'être très utile, mais ils utilisent aussi MEF et RIA Services qui peuvent compliquer les choses:

A Sample Silverlight 4 Application Using MEF, MVVM, and WCF RIA Services

Architecting Silverlight 4 with RIA Services MEF and MVVM - Part 1

En Avril, l'auteur de la Lumière MVVM toolkit a déclaré qu'il créerait éventuellement une application de référence à la fois dans Silverlight et WPF. (Source)

Vous trouverez peut-être ces questions utiles:

mvvm light toolkit samples

wpf/silverlight mvvm sample app request

mvvm tutorial from start to finish

1

je trouve ces deux très utiles:

http://www.codeproject.com/KB/WPF/blendable_locator.aspx http://rickrat.wordpress.com/2011/01/24/using-mef-to-link-view-model-locator-and-load-assembly-uis-dynamically

Le first est une simple classe drop-in viewModelLocator pour MVVM Light qui vous donne les capacités MEF.

[ExportViewModel("Demo1", false)] 
class Demo1ViewModel : ViewModel 
{ 
} 

Et le second un, utilise la même approche avec une classe MefHelper supplémentaire qui permet le chargement de courir le temps des composants du MEF.

public void Compose() 
{ 
AggregateCatalog Catalog = new AggregateCatalog(); 
// Add This assembly's catalog parts 
System.Reflection.Assembly ass = System.Reflection.Assembly.GetEntryAssembly(); 
Catalog.Catalogs.Add(new AssemblyCatalog(ass)); 

// Directory of catalog parts 
if (System.IO.Directory.Exists(ExtensionsPath)) 
{ 
    Catalog.Catalogs.Add(new DirectoryCatalog(ExtensionsPath)); 
    string[] folders = System.IO.Directory.GetDirectories(ExtensionsPath); 

    foreach (string folder in folders) 
    { 
     Catalog.Catalogs.Add(new DirectoryCatalog(folder)); 
    } 

} 

_Container = new CompositionContainer(Catalog); 
} 
Questions connexes