我一直在关注股票交易者app的Prism参考实现。我正在以同样的方式构建应用程序。但我对如何以Prism方式向我的应用程序添加菜单感到困惑。参考实现似乎并不明确。任何建议都会非常明显。
答案 0 :(得分:2)
模块化应用程序可以帮助解决很多问题,但是它们也可以使一些以前微不足道的任务变得非常困难。我同意你的观点,Prism书至少应该提供一些关于如何做菜单的例子,但是可能有很多方法可以做到。
当我在Stackoverflow上使用Prism时,我问了同样的问题。我回来一段时间后回答了我自己的问题。我的解决方案是创建一个IMenuService,允许我将菜单项添加到我的菜单,菜单是一个单独的模块。请在此处查看我对自己问题的回答:
答案 1 :(得分:1)
要制作动态菜单,我使用区域。我在ShellView
做的第一件事就是添加一个菜单并在其中设置一个区域。
<Menu prism:RegionManager.RegionName="MenuRegion">
</Menu>
当我需要模块中的菜单时,我会创建一个这样的用户控件:
<MenuItem x:Class="MyCompany.PrismApp.HelloWorldMenu">
<!-- ... -->
</MenuItem>
更改后面的代码,让类反映类型MenuItem
:
public partial class HelloWorldMenu : MenuItem
{
// ...
}
IModule
public class SomeModule : IModule
{
public void Initialize()
{
// ...
this.RegionManager.RegisterViewWithRegion("MenuRegion", typeof(HelloWorldMenu));
}
}
所有都是香草棱镜。