没有RegionManager的PRISM导航,只有MEF

时间:2011-02-01 09:48:24

标签: navigation prism mef

我们正在计划开发一个框架,使用MEF作为基础,根据需要拉入Prism。

棱镜的目标资产之一是导航。这可以和RagionManager一起使用吗?

我们不想使用RegionManager,因为它看起来有点矫枉过正。我们主要是一个工作流程类型的应用程序,不需要复杂的ui组合,这是regionmanager的主要目的

1 个答案:

答案 0 :(得分:0)

大部分时间,导航只是菜单项,我同意,这有点矫枉过正。

我们对菜单项的操作是使用Shell注册菜单项,以便Shell可以创建菜单,包括外观。使用MEF,这非常简单。

从MenuItem实体开始。

public class MenuItem
{
     public ICommand ClickCommand { get; private set; }
     public string Path { get; private set; }
     public MenuItem(DelegateCommand command, string path) { //yada yada }
}

从模块中,您可以导出这些菜单项的实例。

[Export(typeof(MenuItem))]
public MenuItem MyFirstItem = new MenuItem(
     new DelegateCommand(
         () => MessageBox.Show("woo!")), 
         "My First\Menu Item 1")
     );

在你的shell中,你只需导入它们并创建你想要为菜单项呈现的任何视觉元素。当你可能希望它们看起来都一样时,这不仅依赖于模块来创建导航元素的正确外观,还有额外的好处。