|
|
|
@ -971,6 +971,40 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Removing_TreeView_From_Root_Should_Preserve_TreeViewItems() |
|
|
|
{ |
|
|
|
// Issue #3328
|
|
|
|
var tree = CreateTestTreeData(); |
|
|
|
var target = new TreeView |
|
|
|
{ |
|
|
|
Template = CreateTreeViewTemplate(), |
|
|
|
Items = tree, |
|
|
|
}; |
|
|
|
|
|
|
|
var root = new TestRoot(); |
|
|
|
root.Child = target; |
|
|
|
|
|
|
|
CreateNodeDataTemplate(target); |
|
|
|
ApplyTemplates(target); |
|
|
|
ExpandAll(target); |
|
|
|
|
|
|
|
Assert.Equal(5, target.ItemContainerGenerator.Index.Containers.Count()); |
|
|
|
|
|
|
|
root.Child = null; |
|
|
|
|
|
|
|
Assert.Equal(5, target.ItemContainerGenerator.Index.Containers.Count()); |
|
|
|
Assert.Equal(1, target.Presenter.Panel.Children.Count); |
|
|
|
|
|
|
|
var rootNode = Assert.IsType<TreeViewItem>(target.Presenter.Panel.Children[0]); |
|
|
|
Assert.Equal(3, rootNode.ItemContainerGenerator.Containers.Count()); |
|
|
|
Assert.Equal(3, rootNode.Presenter.Panel.Children.Count); |
|
|
|
|
|
|
|
var child2Node = Assert.IsType<TreeViewItem>(rootNode.Presenter.Panel.Children[1]); |
|
|
|
Assert.Equal(1, child2Node.ItemContainerGenerator.Containers.Count()); |
|
|
|
Assert.Equal(1, child2Node.Presenter.Panel.Children.Count); |
|
|
|
} |
|
|
|
|
|
|
|
private void ApplyTemplates(TreeView tree) |
|
|
|
{ |
|
|
|
tree.ApplyTemplate(); |
|
|
|
|