根据winform中的TreeView选择显示DataGrid

时间:2013-05-02 02:19:00

标签: c# .net vb.net winforms

我的win树形图中有一个超过10个节点的树视图,节点值从DB中读取并且动态变化,根据每个节点的选择我必须显示相应的细节(数据将从在表格右侧的DataGrid中的网格数据库,有没有最简单的方法来实现这个?

2 个答案:

答案 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重复姓名。