Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在WPF应用程序中以prism方式向应用程序添加菜单?_Wpf_Mvvm_Prism - Fatal编程技术网

如何在WPF应用程序中以prism方式向应用程序添加菜单?

如何在WPF应用程序中以prism方式向应用程序添加菜单?,wpf,mvvm,prism,Wpf,Mvvm,Prism,我一直在关注股票交易员应用程序的Prism参考实现。我正在以同样的方式构建应用程序。但我有点困惑,我将如何添加菜单到我的应用程序在棱镜的方式。参考实现在这方面似乎并不明确。任何建议都是值得赞赏的。模块化应用程序可以在许多方面提供帮助,但它们也会使一些以前微不足道的任务变得非常困难。我同意你的观点,Prism的书至少应该给出一些关于如何制作菜单的例子,但是可能有很多方法 当我在Stackoverflow上开始使用Prism时,我问了同样的问题。一段时间后我回来回答了我自己的问题。我的解决方案是创建

我一直在关注股票交易员应用程序的Prism参考实现。我正在以同样的方式构建应用程序。但我有点困惑,我将如何添加菜单到我的应用程序在棱镜的方式。参考实现在这方面似乎并不明确。任何建议都是值得赞赏的。

模块化应用程序可以在许多方面提供帮助,但它们也会使一些以前微不足道的任务变得非常困难。我同意你的观点,Prism的书至少应该给出一些关于如何制作菜单的例子,但是可能有很多方法

当我在Stackoverflow上开始使用Prism时,我问了同样的问题。一段时间后我回来回答了我自己的问题。我的解决方案是创建一个IMenuService,允许我将菜单项添加到菜单中,菜单是一个单独的模块。请看我对自己问题的回答:


要创建动态菜单,我使用区域。我在
shell视图中做的第一件事是添加一个菜单并在其中设置一个区域

<Menu prism:RegionManager.RegionName="MenuRegion">
</Menu>
IModule的实现

public class SomeModule : IModule
{
    public void Initialize()
    {
        // ...
        this.RegionManager.RegisterViewWithRegion("MenuRegion", typeof(HelloWorldMenu));
    }
}

一切都是香草棱镜。

你有没有这个资源托管在某个地方让我看一看look@kbird现在就看这个链接问题的答案,我用一个完整的例子更新了它。文件->下载应该会让你得到压缩文件。我希望这有帮助@我只是好奇,你觉得这个例子怎么样?你认为你会做类似的事情吗,或者你有没有发现其他的想法?谢谢艾伦,我能够根据你的解决方案让它工作。谢谢你的指导。非常感谢!
public partial class HelloWorldMenu : MenuItem
{
    // ...
}
public class SomeModule : IModule
{
    public void Initialize()
    {
        // ...
        this.RegionManager.RegisterViewWithRegion("MenuRegion", typeof(HelloWorldMenu));
    }
}