Index: Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs =================================================================== diff -u -rb1689a3cc2357a00e831ff7229278fcfcf129708 -r94d02f6327c40b7753d81862c6131becbe58bc4a --- Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs (.../TreeViewControl.cs) (revision b1689a3cc2357a00e831ff7229278fcfcf129708) +++ Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs (.../TreeViewControl.cs) (revision 94d02f6327c40b7753d81862c6131becbe58bc4a) @@ -529,16 +529,11 @@ } else { - TreeNode rootNode = AddRootNode(data); - - if (rootNode.Nodes.Count > 0) - { - rootNode.Expand(); - } + AddRootNode(data); } } - private TreeNode AddRootNode(object rootObject) + private void AddRootNode(object rootObject) { var rootNode = new TreeNode { @@ -550,8 +545,6 @@ treeView.Nodes.Add(rootNode); treeNodeObserverLookup.Add(rootNode, new TreeNodeObserver(rootNode, this)); - - return rootNode; } private TreeNode CreateTreeNode(TreeNode parentNode, object nodeData) Index: Core/Common/test/Core.Common.Controls.TreeView.Test/TreeViewControlTest.cs =================================================================== diff -u -rdf61a1446208a0724670d1b90a3bb9c3cd5522b3 -r94d02f6327c40b7753d81862c6131becbe58bc4a --- Core/Common/test/Core.Common.Controls.TreeView.Test/TreeViewControlTest.cs (.../TreeViewControlTest.cs) (revision df61a1446208a0724670d1b90a3bb9c3cd5522b3) +++ Core/Common/test/Core.Common.Controls.TreeView.Test/TreeViewControlTest.cs (.../TreeViewControlTest.cs) (revision 94d02f6327c40b7753d81862c6131becbe58bc4a) @@ -189,6 +189,58 @@ } [Test] + public void Data_NodeInfoSetAndDataIsSingleObject_RootNodeAddedAccordingly() + { + // Setup + using (var treeViewControl = new TreeViewControl()) + { + treeViewControl.RegisterTreeNodeInfo(new TreeNodeInfo + { + TagType = typeof(object) + }); + + var testNodeData = new object(); + + // Call + treeViewControl.Data = testNodeData; + + // Assert + TreeNodeCollection nodes = ((System.Windows.Forms.TreeView) treeViewControl.Controls[0]).Nodes; + Assert.AreEqual(1, nodes.Count); + Assert.AreSame(testNodeData, nodes[0].Tag); + } + } + + [Test] + public void Data_NodeInfoSetAndDataIsEnumerationOfObjects_RootNodesAddedAccordingly() + { + // Setup + using (var treeViewControl = new TreeViewControl()) + { + treeViewControl.RegisterTreeNodeInfo(new TreeNodeInfo + { + TagType = typeof(object) + }); + + var testNodeData1 = new object(); + var testNodeData2 = new object(); + + // Call + treeViewControl.Data = new[] + { + testNodeData1, + testNodeData2 + }; + + // Assert + TreeNodeCollection nodes = ((System.Windows.Forms.TreeView) treeViewControl.Controls[0]).Nodes; + Assert.AreEqual(2, nodes.Count); + Assert.AreSame(testNodeData1, nodes[0].Tag); + Assert.AreSame(testNodeData2, nodes[1].Tag); + } + } + + [Test] public void CanRenameNodeForData_Null_ReturnsFalse() { // Setup