我们正在计划开发一个框架,使用MEF作为基础,根据需要拉入Prism。
棱镜的目标资产之一是导航。这可以和RagionManager一起使用吗?
我们不想使用RegionManager,因为它看起来有点矫枉过正。我们主要是一个工作流程类型的应用程序,不需要复杂的ui组合,这是regionmanager的主要目的
答案 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中,你只需导入它们并创建你想要为菜单项呈现的任何视觉元素。当你可能希望它们看起来都一样时,这不仅依赖于模块来创建导航元素的正确外观,还有额外的好处。