我的win树形图中有一个超过10个节点的树视图,节点值从DB中读取并且动态变化,根据每个节点的选择我必须显示相应的细节(数据将从在表格右侧的DataGrid中的网格数据库,有没有最简单的方法来实现这个?
答案 0 :(得分:2)
您可以使用属性TreeNode.Tag
。它已构建为包含TreeNode
的数据。
从数据库加载TreeNode
时,您可以加载每个节点的列表数据,并将其放在Tag
TreeNode
属性中,后面的代码如下所示。
TreeNode treeNode = new TreeNode(textNodeFromDb);
// for exam the LoadListDataByNodeText will return IList<Details>
treeNode.Tag = LoadListDataByNodeText(textNodeFromDb);
当用户在TreeView上选择一个节点时:
if (treeView.SelectedNode != null)
dataGrid.ItemSource = treeView.SelectedNode.Tag as IList<Details>
要获取有关TreeNode
的更多信息,请点击以下链接。它已经包含示例代码:
http://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.tag.aspx
答案 1 :(得分:0)
DataGrid.ItemsSource = getSelectedNodeDataList(myTreeView.SelectedNode.Text)
getSelectedNodeDataList
应返回该节点的List
个数据。如果您在TreeView
上使用Index
而不是Text
重复姓名。