|
|
@@ -1002,6 +1002,35 @@ namespace Avalonia.Controls.UnitTests
|
|
|
Assert.Equal(1, child2Node.Presenter.Panel.Children.Count);
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void Clearing_TreeView_Items_Clears_Index()
|
|
|
+ {
|
|
|
+ // Issue #3551
|
|
|
+ var tree = CreateTestTreeData();
|
|
|
+ var target = new TreeView
|
|
|
+ {
|
|
|
+ Template = CreateTreeViewTemplate(),
|
|
|
+ Items = tree,
|
|
|
+ };
|
|
|
+
|
|
|
+ var root = new TestRoot();
|
|
|
+ root.Child = target;
|
|
|
+
|
|
|
+ CreateNodeDataTemplate(target);
|
|
|
+ ApplyTemplates(target);
|
|
|
+
|
|
|
+ var rootNode = tree[0];
|
|
|
+ var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(rootNode);
|
|
|
+
|
|
|
+ Assert.NotNull(container);
|
|
|
+
|
|
|
+ root.Child = null;
|
|
|
+
|
|
|
+ tree.Clear();
|
|
|
+
|
|
|
+ Assert.Empty(target.ItemContainerGenerator.Index.Containers);
|
|
|
+ }
|
|
|
+
|
|
|
private void ApplyTemplates(TreeView tree)
|
|
|
{
|
|
|
tree.ApplyTemplate();
|