2016-04-13 45 views
0

Bu blogu, Lauren Bugnion'dan MVVM hafif IOC kaplar üzerinde çalışıyorum ve gerçekten beni şaşırtan bir şey var.MVVM Light IOC Kapsayıcı örneği

İşte MVVM light IOC containers blog

Ben bu yüzden sadece bir sert zaman anlayışa sahip pasajını içerecek şekilde gidiyorum istiyorum alıntı tüm şey yok yayınlamak blog'a bir bağlantı. Bu fonksiyon bile erişilebilir mi

public class ViewModelLocator 
{ 
    static ViewModelLocator() 
    { 
    ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); 
    if (ViewModelBase.IsInDesignModeStatic) 
    { 
     SimpleIoc.Default.Register<IRssService, Design.DesignRssService>(); 
    } 
    else 
    { 
     SimpleIoc.Default.Register<IRssService, RssService>(); 
    } 
    SimpleIoc.Default.Register<INavigationService, NavigationService>(); 
    SimpleIoc.Default.Register<MainViewModel>(); 
    } 
    public MainViewModel Main 
    { 
    get 
    { 
     return ServiceLocator.Current.GetInstance<MainViewModel>(); 
    } 
    } 
} 

Şimdi statik yapıcı ve her şeyi anlıyorum ama

public MainViewModel Main 
    { 
    get 
    { 
     return ServiceLocator.Current.GetInstance<MainViewModel>(); 
    } 
    } 

kafamı kaydıramazsınız? ve nasıl?

Teşekkürler!

cevap

0

Evet, bir ViewModelLocator örneğiniz olduğunda erişilebilir. Örneğin, bir örneği App.xaml'de başlatabilir ve StaticResource üzerinden erişilebilir.

+0

Bir örnek verebilir misiniz? Benim App.cs içinde bana 'genel statik ViewModelLocator bulucu' –

+0

yazmam için izin vermez çünkü Wow im aptal, sınıfın genel bir temel eksik, gerçek sorun neydi diye beni şaşırttı. Teşekkürler –

+0

gibi bir şey yazarak XAML'ye ekleyebilirsiniz. –