2011-01-04 2 views
2

に対する財産の詐欺:私は不思議何プリズム/ MEFのViewModel:プロとViewModelには、プロパティを使用してMEFによって注入されたStockTraderRIのサンプルコードでCTOR

[Export(typeof(IOrdersView))] 
[PartCreationPolicy(CreationPolicy.NonShared)] 
public partial class OrdersView : UserControl, IOrdersView 
{ 
    public OrdersView() 
    { 
    InitializeComponent(); 
    } 

    [Import] 
    [SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Justification = "Needs to be a property to be composed by MEF")] 
    public IOrdersViewModel ViewModel 
    { 
    set { this.DataContext = value; } 
    } 
} 

がある:なぜこのようImportingConstructorを使用しませんViewModelにを注入:StockTraderRIサンプルはCTORにPARAMTERの代わりにプロパティを使用しない理由私は欠場特別な機能、問題や理由が

[Export(typeof(IOrdersView))] 
[PartCreationPolicy(CreationPolicy.NonShared)] 
public partial class OrdersView : UserControl, IOrdersView 
{ 
    [ImportingConstructor] 
    public OrdersView(IOrdersViewModel ViewModel) 
    { 
    InitializeComponent(); 
    this.DataContext = ViewModel; 
    } 
} 

ありますか?

答えて

5

XAMLで部分的に定義されている型は、パラメータ化されたコンストラクタでは正常に動作しません。 XAMLは、「空のオブジェクトを作成し、その後のプロパティを入力する」パラダイムに基づいています。

+0

あまりにも私のために見つけるのは簡単でした:)高速ヘルプのおかげで! – Sam

+1

@Sam:面白いのは、私がViewModelの最初のアプローチを使って遭遇した同様のケースに対して、はるかに長い答えを書くことです。私はこれがXAMLのことであることに気づいたので、あなたはそこに会社を持っています:) – Jon

関連する問題