Im StockTraderRI Beispielcode das Ansichtsmodell von MEF injiziert wird, eine Eigenschaft mit:Prism/mef Ansichtsmodell: Pro und Contra von Eigentum gegen 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; }
}
}
Was ich frage mich: Warum nicht eine ImportingConstructor wie diese verwenden, um injizieren, um das Ansichtsmodell:
[Export(typeof(IOrdersView))]
[PartCreationPolicy(CreationPolicy.NonShared)]
public partial class OrdersView : UserControl, IOrdersView
{
[ImportingConstructor]
public OrdersView(IOrdersViewModel ViewModel)
{
InitializeComponent();
this.DataContext = ViewModel;
}
}
gibt es eine Besonderheit, Problem oder Grund, warum ich vermisse, warum die StockTraderRI Probe, die eine Immobilie anstelle einem Paramter zum ctor verwenden ist?
Gee, das war zu einfach für mich zu sehen :) Danke für die schnelle Hilfe! – Sam
@Sam: Lustig ist, dass ich begann, eine viel längere Antwort für einen ähnlichen Fall zu schreiben, den ich selbst mit einem ViewModel-First-Ansatz angetroffen habe. Etwa auf halbem Weg wurde mir klar, dass das eine XAML-Sache ist, also habt ihr Gesellschaft :) – Jon