public ConversationHierarchyExplorerVm(IWindsorContainer applicationWindsorContainer, ICrossContainerHierarchyResolver crossContainerHierarchyResolver) : base(applicationWindsorContainer)
 {
     this.CrossContainerHierarchyResolver = crossContainerHierarchyResolver;
     DispatcherHelper.CheckBeginInvokeOnUI(() => this.View = this.ApplicationOrInvestigationWindsorContainer.Resolve <IConversationHierarchyExplorer>());
     this.DockPositionPosition = DetectiveDockPosition.DockedRight;
     this.IsHidden             = false;
     this.IsSelected           = true;
     Task.Factory.StartNew(() => { Messenger.Default.Register <ConversationMessage>(this, this.ConversationMessageHandler); });
 }
        private void RegisterViewModelModelResolver(IWindsorContainer container)
        {
            var parrentContainer = container.Parent;
            ICrossContainerHierarchyResolver parentCrossContainerHierarchyResolver = null;

            if (parrentContainer?.Kernel.HasComponent(typeof(CrossContainerHierarchyResolver)) ?? false)
            {
                parentCrossContainerHierarchyResolver = parrentContainer.Resolve <ICrossContainerHierarchyResolver>();
            }
            container.Register(Component.For <ICrossContainerHierarchyResolver, CrossContainerHierarchyResolver>());
            if (parentCrossContainerHierarchyResolver != null)
            {
                var childSubResolver = container.Resolve <ICrossContainerHierarchyResolver>();
                parentCrossContainerHierarchyResolver.SubResolver = childSubResolver;
            }
        }
 public NavigationService(ICrossContainerHierarchyResolver crossContainerHierarchyResolver)
 {
     this.CrossContainerHierarchyResolver = crossContainerHierarchyResolver;
 }