我正在创建一个 Prism 4 演示应用程序来学习新框架,重点是视图切换。该应用程序有几个区域,其中之一是一个 ItemsControl,它包含当前活动模块中的一个或多个按钮。
我在每个模块的Initilize()
方法中使用区域管理器注册按钮。这是第一个模块的注册码:
RegionManager.RegisterViewWithRegion("ButtonRegion", typeof(ModuleAButton1));
RegionManager.RegisterViewWithRegion("ButtonRegion", typeof(ModuleAButton2));
第二个模块以相同的方式注册其按钮。我用来RequestNavigate()
在两个模块之间切换。
这是我的问题:来自两个模块的按钮在 中可见ItemsControl
,而不仅仅是来自活动模块的按钮。我考虑将 a 更改ItemsControl
为 aContentControl
并将按钮放入 a StackPanel
,但由于我不会在这里让您感到厌烦的原因,这对我不起作用。我需要做的是:
当一个模块被激活时加载按钮,当我切换到另一个模块时卸载它们,或者
当一个模块被激活时显示按钮,当我切换到另一个模块时隐藏它们。
我如何在 Prism 4 中做到这一点?谢谢你的帮助。