|
@@ -424,6 +424,587 @@ namespace Avalonia.Controls.UnitTests
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void Double_Clicking_Item_Header_Should_Expand_It()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ CollapseAll(target);
|
|
|
+
|
|
|
+ var item = tree[0].Children[1];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ _mouse.DoubleClick(header);
|
|
|
+
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Double_Clicking_Item_Header_With_No_Children_Does_Not_Expand_It()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ CollapseAll(target);
|
|
|
+
|
|
|
+ var item = tree[0].Children[1].Children[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ _mouse.DoubleClick(header);
|
|
|
+
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Double_Clicking_Item_Header_Should_Collapse_It()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ ExpandAll(target);
|
|
|
+
|
|
|
+ var item = tree[0].Children[1];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ _mouse.DoubleClick(header);
|
|
|
+
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Enter_Key_Should_Collapse_TreeViewItem()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ ExpandAll(target); // NOTE this line
|
|
|
+
|
|
|
+ var item = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ container.RaiseEvent(new KeyEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = InputElement.KeyDownEvent,
|
|
|
+ Key = Key.Enter,
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Enter_plus_Ctrl_Key_Should_Collapse_TreeViewItem_Recursively()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ ExpandAll(target); // NOTE this line
|
|
|
+
|
|
|
+ var item = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ container.RaiseEvent(new KeyEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = InputElement.KeyDownEvent,
|
|
|
+ Key = Key.Enter,
|
|
|
+ KeyModifiers = KeyModifiers.Control,
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+
|
|
|
+ AssertEachItemWithChildrenIsCollapsed(item);
|
|
|
+
|
|
|
+ void AssertEachItemWithChildrenIsCollapsed(Node node)
|
|
|
+ {
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(node);
|
|
|
+ Assert.NotNull(container);
|
|
|
+ if (node.Children?.Count > 0)
|
|
|
+ {
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ foreach (var c in node.Children)
|
|
|
+ {
|
|
|
+ AssertEachItemWithChildrenIsCollapsed(c);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Enter_Key_Should_Expand_TreeViewItem()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ CollapseAll(target); // NOTE this line
|
|
|
+
|
|
|
+ var item = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ container.RaiseEvent(new KeyEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = InputElement.KeyDownEvent,
|
|
|
+ Key = Key.Enter,
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Enter_plus_Ctrl_Key_Should_Expand_TreeViewItem_Recursively()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ CollapseAll(target); // NOTE this line
|
|
|
+
|
|
|
+ var item = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ container.RaiseEvent(new KeyEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = InputElement.KeyDownEvent,
|
|
|
+ Key = Key.Enter,
|
|
|
+ KeyModifiers = KeyModifiers.Control,
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+
|
|
|
+ AssertEachItemWithChildrenIsExpanded(item);
|
|
|
+
|
|
|
+ void AssertEachItemWithChildrenIsExpanded(Node node)
|
|
|
+ {
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(node);
|
|
|
+ Assert.NotNull(container);
|
|
|
+ if (node.Children?.Count > 0)
|
|
|
+ {
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ foreach (var c in node.Children)
|
|
|
+ {
|
|
|
+ AssertEachItemWithChildrenIsExpanded(c);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Space_Key_Should_Collapse_TreeViewItem()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ ExpandAll(target); // NOTE this line
|
|
|
+
|
|
|
+ var item = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ container.RaiseEvent(new KeyEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = InputElement.KeyDownEvent,
|
|
|
+ Key = Key.Enter,
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Space_plus_Ctrl_Key_Should_Collapse_TreeViewItem_Recursively()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ ExpandAll(target); // NOTE this line
|
|
|
+
|
|
|
+ var item = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ container.RaiseEvent(new KeyEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = InputElement.KeyDownEvent,
|
|
|
+ Key = Key.Enter,
|
|
|
+ KeyModifiers = KeyModifiers.Control,
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+
|
|
|
+ AssertEachItemWithChildrenIsCollapsed(item);
|
|
|
+
|
|
|
+ void AssertEachItemWithChildrenIsCollapsed(Node node)
|
|
|
+ {
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(node);
|
|
|
+ Assert.NotNull(container);
|
|
|
+ if (node.Children?.Count > 0)
|
|
|
+ {
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ foreach (var c in node.Children)
|
|
|
+ {
|
|
|
+ AssertEachItemWithChildrenIsCollapsed(c);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Space_Key_Should_Expand_TreeViewItem()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ CollapseAll(target); // NOTE this line
|
|
|
+
|
|
|
+ var item = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ container.RaiseEvent(new KeyEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = InputElement.KeyDownEvent,
|
|
|
+ Key = Key.Enter,
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Space_plus_Ctrl_Key_Should_Expand_TreeViewItem_Recursively()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ CollapseAll(target); // NOTE this line
|
|
|
+
|
|
|
+ var item = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ var header = container.Header as Interactive;
|
|
|
+ Assert.NotNull(header);
|
|
|
+
|
|
|
+ container.RaiseEvent(new KeyEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = InputElement.KeyDownEvent,
|
|
|
+ Key = Key.Enter,
|
|
|
+ KeyModifiers = KeyModifiers.Control,
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+
|
|
|
+ AssertEachItemWithChildrenIsExpanded(item);
|
|
|
+
|
|
|
+ void AssertEachItemWithChildrenIsExpanded(Node node)
|
|
|
+ {
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(node);
|
|
|
+ Assert.NotNull(container);
|
|
|
+ if (node.Children?.Count > 0)
|
|
|
+ {
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ foreach (var c in node.Children)
|
|
|
+ {
|
|
|
+ AssertEachItemWithChildrenIsExpanded(c);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Numpad_Star_Should_Expand_All_Children_Recursively()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ CollapseAll(target);
|
|
|
+
|
|
|
+ var item = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ container.RaiseEvent(new KeyEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = InputElement.KeyDownEvent,
|
|
|
+ Key = Key.Multiply,
|
|
|
+ });
|
|
|
+
|
|
|
+ AssertEachItemWithChildrenIsExpanded(item);
|
|
|
+
|
|
|
+ void AssertEachItemWithChildrenIsExpanded(Node node)
|
|
|
+ {
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(node);
|
|
|
+ Assert.NotNull(container);
|
|
|
+ if (node.Children?.Count > 0)
|
|
|
+ {
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ foreach (var c in node.Children)
|
|
|
+ {
|
|
|
+ AssertEachItemWithChildrenIsExpanded(c);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Numpad_Slash_Should_Collapse_All_Children_Recursively()
|
|
|
+ {
|
|
|
+ using (Application())
|
|
|
+ {
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var visualRoot = new TestRoot();
|
|
|
+ visualRoot.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+ ExpandAll(target);
|
|
|
+
|
|
|
+ var item = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(item);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+ container.RaiseEvent(new KeyEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = InputElement.KeyDownEvent,
|
|
|
+ Key = Key.Divide,
|
|
|
+ });
|
|
|
+
|
|
|
+ AssertEachItemWithChildrenIsCollapsed(item);
|
|
|
+
|
|
|
+ void AssertEachItemWithChildrenIsCollapsed(Node node)
|
|
|
+ {
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(node);
|
|
|
+ Assert.NotNull(container);
|
|
|
+ if (node.Children?.Count > 0)
|
|
|
+ {
|
|
|
+ Assert.False(container.IsExpanded);
|
|
|
+ foreach (var c in node.Children)
|
|
|
+ {
|
|
|
+ AssertEachItemWithChildrenIsCollapsed(c);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Assert.True(container.IsExpanded);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
[Fact]
|
|
|
public void Setting_SelectedItem_Should_Set_Container_Selected()
|
|
|
{
|
|
@@ -1313,10 +1894,14 @@ namespace Avalonia.Controls.UnitTests
|
|
|
{
|
|
|
Children =
|
|
|
{
|
|
|
- new ContentPresenter
|
|
|
+ new Border
|
|
|
{
|
|
|
- Name = "PART_HeaderPresenter",
|
|
|
- [~ContentPresenter.ContentProperty] = parent[~TreeViewItem.HeaderProperty],
|
|
|
+ Name = "PART_Header",
|
|
|
+ Child = new ContentPresenter
|
|
|
+ {
|
|
|
+ Name = "PART_HeaderPresenter",
|
|
|
+ [~ContentPresenter.ContentProperty] = parent[~TreeViewItem.HeaderProperty],
|
|
|
+ }.RegisterInNameScope(scope)
|
|
|
}.RegisterInNameScope(scope),
|
|
|
new ItemsPresenter
|
|
|
{
|
|
@@ -1335,6 +1920,14 @@ namespace Avalonia.Controls.UnitTests
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void CollapseAll(TreeView tree)
|
|
|
+ {
|
|
|
+ foreach (var i in tree.ItemContainerGenerator.Containers)
|
|
|
+ {
|
|
|
+ tree.CollapseSubTree((TreeViewItem)i.ContainerControl);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private List<string> ExtractItemHeader(TreeView tree, int level)
|
|
|
{
|
|
|
return ExtractItemContent(tree.Presenter.Panel, 0, level)
|