/ / Mostra DataGrid basato sulla selezione TreeView in winform - c #, .net, vb.net, winforms

Mostra DataGrid in base alla selezione TreeView in winform - c #, .net, vb.net, winforms

Ho una vista ad albero nella mia forma di vincita che sta avendopiù di 10 nodi, i valori dei nodi vengono letti dal DB e cambia in modo dinamico, in base alla selezione per ciascun nodo devo mostrare i dettagli appropriati (i dati verranno letti dal DB per la griglia) nel DataGrid sul lato destro del modulo, c'è un modo più semplice per ottenere questo?

risposte:

2 per risposta № 1

Puoi usare la proprietà TreeNode.Tag. È già stato creato per contenere dati da TreeNode. Durante il caricamento TreeNode dal database, è possibile caricare i dati dell'elenco per ciascun nodo e inserirli in Tag proprietà di TreeNode seguendo il codice qui sotto.

TreeNode treeNode = new TreeNode(textNodeFromDb);
// for exam the LoadListDataByNodeText will return IList<Details>
treeNode.Tag = LoadListDataByNodeText(textNodeFromDb);

E quando l'utente seleziona un nodo su TreeView:

if (treeView.SelectedNode != null)
dataGrid.ItemSource = treeView.SelectedNode.Tag as IList<Details>

Per ottenere maggiori informazioni su TreeNode si prega di seguire il link qui sotto. Contiene già anche il codice di esempio:

http://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.tag.aspx


0 per risposta № 2
DataGrid.ItemsSource = getSelectedNodeDataList(myTreeView.SelectedNode.Text)

getSelectedNodeDataList dovrebbe restituire a List di dati per quel nodo. Se hai nomi duplicati attivi TreeView uso Index invece di Text.