属性值更改后,MEF属性导出不起作用

时间:2011-10-16 21:56:11

标签: c# .net mef

我在导出属性时遇到问题。

我有两个视图模型:

public class ViewModelA
{
  [Export]
  public LanguageObj LObj { get; set; }
}

public class ViewModelB
{
  [Import]
  public LanguageObj LObj { get; set; }
}

当我运行我的应用程序时,属性之间的第一条线路已经建成,但是起初,languageObj为null,因为用户还没有选择语言。当用户选择语言时,vm A中的属性会更新,但是当我尝试在vm B中获取它时仍然会看到空值,这意味着mef没有通知此更改。

顺便说一句,如果我使用ObservableCollection类型的属性,我真的看到了变化,这意味着A中的集合上的每个变化我在B中看到它。

我转移到使用方法导出,它的工作正常,但真的很有趣,为什么我不能使用属性导出样式。

我用过:

[Export(typeof(Func<LanguageObj>))]
public LanguageObj GetLanguageObj()
{
  return LObj
}

在VM B中我使用:

[Import]
public Func<LanguageObj>> LObj {get;set;}

任何想法。

提前致谢...

0 个答案:

没有答案