2010-10-03 15 views
10

MVVM Light'ı öğrenmeye çalışıyorum ve bir modeli ve farklı görünümlerin nasıl yükleneceğini gösteren iyi bir temel örnek arıyorum.Basit MVVM Light örneği arıyorum

MVVM Light'ı indirdikten sonra gördüğüm şablonda model yok ve sadece bir tane var. (http://www.galasoft.ch/mvvm/creating/)

Bulduğum diğer şeyler, tüm görmek istediklerim temel olduğunda daha karmaşık ve biraz kafa karıştırıcı.

Teşekkürler.

cevap

8

Ben bu örnek bulduk:

http://apuntanotas.codeplex.com/

+1

Bu e'deki "model" xample, INotify'ı kullanır. Modelin POCO'ları (Düz Eski CLR Nesnesi) ve veri bağlamaya izin vermek için INotify'ı uygulayan ModelView'ı kullanarak düşünmeye eğilimliyim. –

1

Şahsen onlar da MEF ve RIA Hizmetleri işleri karmaşık hangi kullanmak gerçi bunlar oldukça yararlı olduğu bulduk:

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

Nisan ayında Architecting Silverlight 4 with RIA Services MEF and MVVM - Part 1

, MVVM Işık yazarı toolkit, sonunda hem Silverlight hem de WPF'de bir referans uygulaması oluşturacağını söyledi. (Source)

Sen kullanışlı bu soruları bulabilirsiniz: çok yararlı olmaya

mvvm light toolkit samples

wpf/silverlight mvvm sample app request

mvvm tutorial from start to finish

1

bu ikisini bulundu:

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

first tek bir MEF yetenekleri veren MVVM Light için basit bir drop-in viewModelLocator sınıfıdır.

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

ve second bir MEF bileşenlerin zaman yükleme çalıştırmak sağlayan ek MefHelper sınıfı ile aynı yaklaşım kullanır.

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); 
}