我的表单中有一个Treeview控件和一个多行文本框显示。我也有一个DataTable,每个数据行包含一个实验参数。动态创建节点,每个节点单击在文本框中显示相应的参数(使用Afterselect事件)。为了连接节点和数据行,我添加了一个自定义类对象作为节点标签,我存储节点名称,节点号等。
我希望实施'保存'函数和我想在单独的xml中导出我的treeview节点。但是,我无法找到一种方法来导出标记对象,只使用这种递归方法输出文本:
public class NodeTag
{
public string NodeName;
public string NodeFunc;
public int NodeNumber;
public DataRow datarow;
}
private void btn_save_Click(object sender, EventArgs e)
{
xr = new XmlTextWriter("treeview.xml", System.Text.Encoding.UTF8);
xr.WriteStartDocument();
//Write our root node
xr.WriteStartElement(treeView1.Nodes[0].Text);
foreach (TreeNode node in treeView1.Nodes)
{
saveNode2(node.Nodes);
}
//Close the root node
xr.WriteEndElement();
xr.Close();
}
private void saveNode2(TreeNodeCollection tnc)
{
foreach (TreeNode node in tnc)
{
//If we have child nodes, we'll write
//a parent node, then iterrate through
//the children
if (node.Nodes.Count > 0)
{
xr.WriteStartElement(node.Text);
saveNode2(node.Nodes);
xr.WriteEndElement();
}
else //No child nodes, so we just write the text
{
xr.WriteString(node.Text);
}
}
}
我不熟悉XML导出,所以任何帮助都会很棒。