public void Auto_Expanding_In_Style_Should_Not_Break_Range_Selection()
        {
            /// Issue #2980.
            using (UnitTestApplication.Start(TestServices.RealStyler))
            {
                var target = new DerivedTreeView
                {
                    Template      = CreateTreeViewTemplate(),
                    SelectionMode = SelectionMode.Multiple,
                    Items         = new List <Node>
                    {
                        new Node {
                            Value = "Root1",
                        },
                        new Node {
                            Value = "Root2",
                        },
                    },
                };

                var visualRoot = new TestRoot
                {
                    Styles =
                    {
                        new Style(x => x.OfType <TreeViewItem>())
                        {
                            Setters =
                            {
                                new Setter(TreeViewItem.IsExpandedProperty, true),
                            },
                        },
                    },
                    Child = target,
                };

                CreateNodeDataTemplate(target);
                ApplyTemplates(target);

                _mouse.Click(GetItem(target, 0));
                _mouse.Click(GetItem(target, 1), modifiers: InputModifiers.Shift);
            }
        }
        public void TreeViewItems_Level_Should_Be_Set_For_Derived_TreeView()
        {
            var tree   = CreateTestTreeData();
            var target = new DerivedTreeView
            {
                Template = CreateTreeViewTemplate(),
                Items    = tree,
            };

            var visualRoot = new TestRoot();

            visualRoot.Child = target;

            CreateNodeDataTemplate(target);
            ApplyTemplates(target);
            ExpandAll(target);

            Assert.Equal(0, GetItem(target, 0).Level);
            Assert.Equal(1, GetItem(target, 0, 0).Level);
            Assert.Equal(1, GetItem(target, 0, 1).Level);
            Assert.Equal(1, GetItem(target, 0, 2).Level);
            Assert.Equal(2, GetItem(target, 0, 1, 0).Level);
        }