Ich habe einen Bedarf an einer DependencyProperty von einem Blick in meinem Ansichtsmodell Konstruktor:Silverlight Ansicht DependencyProperty zu Ansichtsmodell über MEF Export
Mein Problem: MEF würde nicht SatisfyImports() ‚, weil sie mit einem oder mehreren ExportAttributes markiert '(das ist die Ausnahme)
dies die Code-Struktur für die Ansicht ist:
public class MyView : UserControl
{
[Export(MethodTypes.ChartType)]
public Charts MyChartType
{
get
{
object k = GetValue(ChartTypeProperty);
Charts f = (Charts)Enum.Parse(typeof(Charts), k.ToString(), true);
return f;
}
set
{
SetValue(ChartTypeProperty, value);
}
}
[Import(ViewModelTypes.GenericChartViewModel)]
public object ViewModel
{
set
{
DataContext = value;
}
}
public MyView()
{
InitializeComponent();
if (!ViewModelBase.IsInDesignModeStatic)
{
// Use MEF To load the View Model
CompositionInitializer.SatisfyImports(this);
}
}
}
und das Ansichtsmodell:
[PartCreationPolicy(CreationPolicy.NonShared)]
[Export(ViewModelTypes.GenericChartViewModel)]
public class GenericChartViewModel
{
[ImportingConstructor]
public GenericChartViewModel([Import(MethodTypes.ChartType)] Charts forChartType)
{
string test = forChartType.ToString();
}
}
Bitte geben Sie mir irgendwelche Hinweise auf diese oder vielleicht eine bessere Lösung vorschlagen Parameter durch mef
In meinem Fall vorbei, würde ich nur dependecyproperty ist jetzt ...
Dank
Ja, nur die VM benötigt es; Konnten Sie konkreter sein, wenn Sie die Eigenschaft manuell übergeben? Ich sehe wirklich nicht, wie das gemacht werden kann ... Auch funktioniert mein Ansatz nicht mit Konstruktoren ([Import (MethodTypes.ChartType)] Charts forChartType, IModel-Modell) Irgendeine Idee auf dem? Weil keine CompositionInitializer.SatisfyImports()? – dvox
Sollte ich MVVMLight Messaging in Betracht ziehen? – dvox