通常,当我使用 C#/VB 附带的标准 TreeView 控件时,我会编写自己的方法来将数据传入和传出 Tree 的内部层次结构存储。
可能有一些方法可以将 GUI“绑定(bind)”到我可以指向的数据存储(例如 XML 文件),并且当用户编辑树项目时,它应该将其保存回存储中。有什么办法吗?
最佳答案
我通过创建一个继承 TreeNode 并包含一个对象的类来绕过它。 然后您可以将记录绑定(bind)到节点并在 Click 或 DoubleClick 事件期间调用它。 例如。
class TreeViewRecord:TreeNode
{
private object DataBoundObject { get; set; }
public TreeViewRecord(string value,object dataBoundObject)
{
if (dataBoundObject != null) DataBoundObject = dataBoundObject;
Text = value;
Name = value;
DataBoundObject = dataBoundObject;
}
public TreeViewRecord()
{
}
public object GetDataboundObject()
{
return DataBoundObject;
}
}
然后您可以在构建 TreeView 时绑定(bind)到每个节点,例如。
TreeView.Nodes.Add(new TreeViewRecord("Node Text", BoundObject));
//or for subNode
TreeView.Nodes[x].Nodes.Add(new TreeViewRecord("Node Text", BoundObject));
然后你可以像这样绑定(bind) DoubleClick 事件
private void TreeViewDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
object exp = ((TreeViewRecord) e.Node).GetDataboundObject();
//Do work
}
关于c# - 您可以数据绑定(bind) TreeView 控件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/990112/