public void Find_Parent_Should_Find_Parent()
        {
            List <TreeContainerSupport>           searchTrees = CreateTrees(5, 4);
            Dictionary <object, ContainerBinding> dict        = CreateDict(new object[] { searchTrees[0], searchTrees [1], searchTrees[2], searchTrees[3] });
            object parent = parentFinder.FindParent(searchTrees [3].children [1].children [2].children [1], dict);

            Assert.That(parent, Is.EqualTo(searchTrees [3]));
        }
        public ContainerBinding FindParentBinding(object container)
        {
            if (_parentFinder == null)
            {
                return(_fallbackBinding);
            }

            object parent = _parentFinder.FindParent(container, _bindingByContainer);

            if (parent == null)
            {
                return(_fallbackBinding);
            }
            ContainerBinding binding;

            if (!_bindingByContainer.TryGetValue(parent, out binding))
            {
                binding = _fallbackBinding;
            }
            return(binding);
        }
        protected virtual bool ValidateContextView(object contextView)
        {
            List <ContainerBinding> possibleParents = null;

            if (_parentFinder is ContainerRegistry)
            {
                possibleParents = (_parentFinder as ContainerRegistry).RootBindings;
            }

            return
                ((possibleParents == null && _parentFinder.Contains(_contextView, contextView)) ||
                 (possibleParents != null && _parentFinder.FindParent(contextView, possibleParents) == _contextView));
        }