| 
					
				 | 
			
			
				@@ -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(); 
			 |