Ich habe eine Baumansicht in meiner Gewinnform, die hatBei mehr als 10 Knoten werden die Knotenwerte aus der Datenbank gelesen und sie ändern sich dynamisch, je nach Auswahl für jeden Knoten. Ich muss die entsprechenden Details (Daten werden aus der Datenbank für das Raster gelesen) im DataGrid auf der rechten Seite des Formulars anzeigen. Gibt es einen einfachsten Weg, dies zu erreichen?
Antworten:
2 für die Antwort № 1Sie können die Eigenschaft verwenden TreeNode.Tag
. Es enthält bereits Daten von TreeNode
. Beim Laden TreeNode
Aus der Datenbank können Sie die Listendaten für jeden Knoten laden und in die Tag
Eigentum von TreeNode
Nach folgendem Code.
TreeNode treeNode = new TreeNode(textNodeFromDb);
// for exam the LoadListDataByNodeText will return IList<Details>
treeNode.Tag = LoadListDataByNodeText(textNodeFromDb);
Und wenn der Benutzer einen Knoten in der TreeView auswählt:
if (treeView.SelectedNode != null)
dataGrid.ItemSource = treeView.SelectedNode.Tag as IList<Details>
Weitere Informationen zu TreeNode
Bitte folgen Sie dem Link unten. Es enthält auch bereits den Beispielcode:
http://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.tag.aspx
0 für die Antwort № 2
DataGrid.ItemsSource = getSelectedNodeDataList(myTreeView.SelectedNode.Text)
getSelectedNodeDataList
sollte eine zurückgeben List
von Daten für diesen Knoten. Wenn Sie doppelte Namen haben TreeView
benutzen Index
Anstatt von Text
.