2016-04-13 11 views
0

MVVM light IOCコンテナのLauren Bugnionからこのブログ記事を勉強していましたが、本当に私を混乱させることが1つあります。MVVMライトIOCコンテナの例

は、ここで私はしたいが、全体の事を引用いけないブログ記事 MVVM light IOC containers blog

へのリンクは、私は唯一の私が苦労を理解しているスニペットを含めるつもりです。

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

今、私は静的コンストラクタ、すべてを理解しますが、私は

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

まわりで私の頭をラップすることはできませんがでもアクセスできるこの機能ですか?そしてどうやって?

ありがとうございます! :)

答えて

0

はい、ViewModelLocatorのインスタンスを持つたびにアクセスできます。たとえば、App.xamlでインスタンスをインスタンス化すると、StaticResourceからアクセスできます。

+0

例を挙げてください。私のApp.csでは書くことができないので、 'public static ViewModelLocator locator' –

+0

クラスの公開情報がなくなってしまったので、実際の問題は何のために混乱してしまったのですか?ありがとう –

+0

のような記述でXAMLに追加できます。 –

関連する問題