1

我正在使用 MEF 使用 ViewExports 来组织和创建视图,如下所示:

[ViewExport(RegionName = "CustTabs")]
[ViewSortHint("20")]
[PartCreationPolicy(CreationPolicy.NonShared)]
public partial class SomeLocalView : UserControl

使用这些创建视图和视图模型效果很好。现在有一次我需要使用特殊的 RegionName 导出所有视图。对于其他出口(和合同名称而不是区域名称),我会使用

container.GetExportedValues<SomeType>("CustTabs");

获取/创建此区域/合同的所有视图。但这不适用于使用 ViewExport 导出的内容。

那么如何获取/创建使用容器中的 ViewExport 属性导出的类呢?

4

1 回答 1

1

ViewExport属性自动注册它附加到UserControls容器中的所有视图。从记忆中,我想你可以用

container.GetExportedValues<Lazy<UserControl,IViewRegionRegistration>>;

检查元数据将告诉您他们注册到哪个区域。

我能想到的唯一另一种可能更简洁的方法是添加一个额外的 Export 属性以将视图导出为所需的类型。

于 2013-10-30T09:26:39.753 回答