Базовый рабочий процесс с TreeView/Tag
или любым другим элементом управления.
Прежде всего Tag is an Object that contains data about the control. The default is null
, что означает, что мы можем использовать тег для хранения string
или int
или любого CustomClass
Теперь давайте создадим Custom class
следующим образом:
public class Cabinet
{
public int Id { get; set; }
public string Name { get; set; }
// Any other value
}
Теперь мы получим данные из нашей базы данных и сохраним их в узле дерева следующим образом:
public static void AddNodeToTreeView(this TreeView tv, string Text, Cabinet cabinet)
{
TreeNode n = new TreeNode();
n.Text = Text;
n.Tag = cabinet;
tv.Add(n);
}
Мы называем это следующим образомthis:
Cabinet c = new Cabinet();
c.Id = 1;//You can store data from sql here
c.Name = "Some Name"; //You can store data from sql here
yourTreeView.AddNodeToTreeView("SomeTextTOBeDisplayed", c);
И теперь все, что вам нужно сделать, это получить нужный вам Node из события:
private void treeView1_Click(object sender, EventArgs e)
{
Cabinet c = yourTreeView.SelectedNode.Tag as Cabinet;
// Here do whatever you want with data
}
или из цикла:
foreach(TreeNode n in yourTreeView.Nodes)
{
Cabinet c = n.Tag as Cabinet;
}