私のWPFアプリケーションにはMEFとMVVMパターンを使用する必要があります。MEFは自動的にオブジェクトを解決します
実は私はViewModelにそうdefiniedいる:VMの取得するための
[Export]
[PartCreationPolicy(CreationPolicy.NonShared)]
class MainVM
{
IServiceA serviceA;
IServiceB serviceB;
[ImportingConstructor]
public MainVM(IServiceA serviceA, IServiceB serviceB)
{
this.serviceA = serviceA;
this.serviceB = serviceB;
System.Diagnostics.Debug.WriteLine(serviceA.Time);
}
}
を、私はそう作られた、VMLocatorを利用します。
XAMLから呼び出さclass ViewModelLocator
{
static ViewModelLocator instance;
public MainVM MainVM
{
get
{
MainVM output = MefBootstrap.Container.GetExportedValue<MainVM>();
return output;
}
}
protected ViewModelLocator()
{
}
public static ViewModelLocator Instance
{
get
{
return instance ?? (instance = new ViewModelLocator());
}
}
}
:
DataContext="{Binding Source={x:Static provider:ViewModelLocator.Instance}, Path=MainVM}"
このコードは実際に動作します。実現が自動的にインポートVMが代わりにGetExportValue()メソッドを使用してのVMLocatorの属性宣言にのみMEF ExportAttribute [インポート]を使用している場合、私は不思議何
。
解決策はありますか?
試しましたか?あなたは何をしたのですか? – wkl
MainVMはまったく解決されていません。私は試しました [インポート]公開MainVM MainVM {get;セット; } –