Je MEF ont besoin d'un DependencyProperty d'un constructeur Voir dans mon ViewModel:Silverlight Voir exportation DependencyProperty ViewModel via
Mon problème: MEF ne serait pas SatisfyImports() « parce qu'elle est marquée par une ou plusieurs ExportAttributes '(qui est l'exception)
C'est la structure de code pour la vue:
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);
}
}
}
et viewmodel:
[PartCreationPolicy(CreationPolicy.NonShared)]
[Export(ViewModelTypes.GenericChartViewModel)]
public class GenericChartViewModel
{
[ImportingConstructor]
public GenericChartViewModel([Import(MethodTypes.ChartType)] Charts forChartType)
{
string test = forChartType.ToString();
}
}
S'il vous plaît me donner des conseils sur ce ou suggérer peut-être une meilleure solution pour passer des paramètres par mef
Dans mon cas, il me faudrait passer que dependecyproperty est pour le moment ...
Merci
Oui, seule la machine virtuelle en a besoin. Pourriez-vous être plus concret sur le passage de la propriété manuellement? Je ne vois vraiment pas comment cela peut être fait ... En outre, mon approche ne fonctionne pas avec les constructeurs ([Import (MethodTypes.ChartType)] Graphiques pourChartType, modèle IModel) Une idée à ce sujet? Parce que pas CompositionInitializer.SatisfyImports()? – dvox
Devrais-je considérer la messagerie MVVMLight? – dvox