我正在开发一个棱镜应用程序,顶部带有一个带状条,左侧是一个outlookbar,一个带标签的内容区域(带有regionadapter的tabcontrol)。
我正在使用视图注入。
我现在的问题是:当从一个现有的tabitem切换到另一个tabitem时,如何将tabitem自己的tabcontrol(例如edituser按钮)注入到功能区中。
我认为INavigationAware在这种情况下不起作用。 (右?)
我能想象的唯一方法就是挂钩并在那里做点什么。
我很高兴你能给我的每一个解决方案。
提前致谢
答案 0 :(得分:0)
我读了你对我的问题的回答,并认为Prism的EventAggregator
可以帮助你。它旨在促进模块间通信,以及其他功能。以下是如何使用它的示例:
获取EventAggregator的实例。我在这里使用依赖注入:
// Ctor injection
private IEventAggregator _eventAggregator;
public YourViewModel(IEventAggregator eventAggregator)
{
_eventAggregator = eventAggregator;
}
创建要发布的事件(参数用于有效负载)。在您的情况下,选项卡选择:
public class TabSelectedEvent:CompositePresentationEvent<object>{}
选择标签时发布活动;
_eventAggregator.GetEvent<TabSelectedEvent>().Publish(null);
最后,订阅该活动并回复:
_eventAggregator.GetEvent<TabSelectedEvent>().Subscribe(OnTabSelectedEvent);
现在,你应该好好去。