在winform中显示基于TreeView选择的数据网格

本文关键字:选择 数据 数据网 网格 TreeView winform 显示 | 更新日期: 2023-09-27 18:11:49

我有一个树视图在我的win形式有超过10个节点,节点值从DB读取,它动态变化,基于选择每个节点,我必须显示适当的细节(数据将从DB读取网格)在DataGrid右边的形式,有没有任何最简单的方法来实现这一点?

在winform中显示基于TreeView选择的数据网格

您可以使用属性TreeNode.Tag。它已经构建为包含来自TreeNode的数据。当从数据库加载TreeNode时,可以加载每个节点的列表数据,并将其放入TreeNodeTag属性中,如下代码所示。

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

DataGrid.ItemsSource = getSelectedNodeDataList(myTreeView.SelectedNode.Text)

getSelectedNodeDataList应该返回该节点的List数据。如果在TreeView上有重复的名称,请使用Index代替Text