棱镜标签内容和丝带

时间:2012-11-23 09:29:59

标签: c# .net wpf prism ribbon

我正在开发一个棱镜应用程序,顶部带有一个带状条,左侧是一个outlookbar,一个带标签的内容区域(带有regionadapter的tabcontrol)。

我正在使用视图注入。

我现在的问题是:当从一个现有的tabitem切换到另一个tabitem时,如何将tabitem自己的tabcontrol(例如edituser按钮)注入到功能区中。

我认为INavigationAware在这种情况下不起作用。 (右?)

我能想象的唯一方法就是挂钩并在那里做点什么。

我很高兴你能给我的每一个解决方案。

提前致谢

1 个答案:

答案 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);

现在,你应该好好去。