当前位置:  开发笔记 > 前端 > 正文

寻找模块的Prism示例将自己加载到菜单中

如何解决《寻找模块的Prism示例将自己加载到菜单中》经验,为你挑选了1个好方法。

有没有人知道使用Prism的WPF代码示例,其中每个模块在另一个模块的菜单中将自己注册为menuitem?

(我目前有一个应用程序尝试使用EventAggregator执行此操作,因此一个模块侦听来自其他模块的已发布事件,这些模块需要在菜单中将其标题作为菜单项,但我遇到了订单问题加载和线程等​​我想找到一个使用经典Prism结构来做这个的例子.)

我在考虑这个问题:

Shell.xaml:


    
    

合同视图:


    
    

客户观点:


    
    

但是要知道我已经完成了非Prism MVVM应用程序结构,并且Menus总是很好地绑定到ViewModel中的ObservableCollections,上面似乎打破了这个漂亮的模式.以上是在Prism中做到这一点的习惯方式吗?



1> Anderson Ime..:

更新:

我为你创建了一个样本.它在这里:样品

它有一些你可能还没想过的东西,比如允许你的模块控制你的shell的合同(所以你可以做像Open Window这样的东西).它的设计考虑了MVVM ......如果您使用它,我不知道,但我会考虑它.

我尝试了几分钟才能让标签标题正确,但我最后还是留下了"A Tab".如果您使用选项卡式UI,它将作为练习留给您.我将它设计为无外观,因此您可以在不破坏任何内容的情况下替换Shell.xaml中的XAML.如果你正确使用它,这是RegionManager的优点之一.

无论如何,祝你好运!


我从未见过这样的例子,但你必须自己实现这个.

你必须创建自己的界面,如下所示:

public interface IMenuRegistry
{
     void RegisterViewWithMenu(string MenuItemTitle, System.Type viewType);
}

然后,您的模块将声明对IMenuRegistry的依赖并注册其视图.

您可以将IMenuRegistry(您可能实现并在托管Bootstrapper的同一项目中注册)的实现添加到菜单或树视图或菜单中使用的任何菜单项.

当用户点击某个项目时,您必须使用您的Bootstrapper.Container.Resolve(viewType)方法创建一个视图实例,并将其填入您想要显示的任何占位符中.


你的链接404's.
@anderson-链接已断开,您能否共享代码?
推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有