c# wpf中如何向expander中动态添加xml中的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# wpf中如何向expander中动态添加xml中的内容相关的知识,希望对你有一定的参考价值。

如题。我现在有一个xml文件记录了一些数据,希望在expander中分层次的显示出来。怎么做呢?

提供下思路。
例如有一个xml,层次是
<classes>
<Students Name ="class1">
< Student>
<UserName>01</UserName>
<Sex>1</Sex>
<Age>22</Age>
</Student>...
就是年级有几个班,每个班有几个学生这样子。
expander的header展示班级名称,content展示每个班的学生列表。
建议用后台代码去动态创建expander和listbox。listbox的itemtemplate可以在前台写,后台引用。
后台遍历XML数据源的时候看第一层有几个数据(demol里的Students)创建expander并对其header赋值。然后创建expander.content中的listbox并赋值其Itemsource。

也可以刚开始只创建expander。在expanderItem展开的时候再去动态对其content创建listobx并赋值。追问

能有具体的代码给看一下吗?

追答
参考技术A 例子
先看一下
private XmlDataDocument xmlDoc;
private void button1_Click(object sender, EventArgs e)

comboBox1.Items.Add("1");
comboBox1.Items.Add("1");
XmlDocument xml = new XmlDocument();
xml.Load(System.IO.Path.GetFileName(@"bf.xml"));
XmlNode nose = xml.SelectSingleNode("request");
nose.RemoveAll();
xml.Save(System.IO.Path.GetFileName("bf.xml"));
string functionIDs = "updateMultiItemsStock";
string dateTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
xmlLoad();

XmlNode xmldocSelect = xmlDoc.SelectSingleNode("request");
XmlElement functionID = xmlDoc.CreateElement("functionID");
functionID.InnerText = functionIDs;
XmlElement time = xmlDoc.CreateElement("time");
time.InnerText = dateTime;
xmldocSelect.AppendChild(functionID);
xmldocSelect.AppendChild(time);
XmlElement ItemsList = xmlDoc.CreateElement("ItemsList");
xmldocSelect.AppendChild(ItemsList);
XmlElement ItemUpadteInfo = null;
XmlElement outerItemID = null;
XmlElement stockCount = null;
for (int i = 0; i < 5; i++)

ItemUpadteInfo = xmlDoc.CreateElement("ItemUpadteInfo");
ItemsList.AppendChild(ItemUpadteInfo);
outerItemID = xmlDoc.CreateElement("outerItemID");
ItemUpadteInfo.AppendChild(outerItemID);
stockCount = xmlDoc.CreateElement("stockCount");
ItemUpadteInfo.AppendChild(stockCount);
outerItemID.InnerText = "20100210";
stockCount.InnerText = "20";
ItemUpadteInfo.AppendChild(stockCount);
ItemUpadteInfo.AppendChild(outerItemID);

xmlDoc.Save(System.IO.Path.GetFileName("bf.xml"));

把ItemsList换成expander; 下面要添加什么改一下就行了for里面的东西就行了 正式的应该是在foreach循环里面添加数据追问

额。这个expander是wpf里的expander阿。你是不是搞错了什么。。

以上是关于c# wpf中如何向expander中动态添加xml中的内容的主要内容,如果未能解决你的问题,请参考以下文章

wpf 如何动态向tabitem添加控件

WPF C# 如何在动态添加的grid控件中添加某个网格中的image控件的单击事件?

WPF中expander 展开按钮如何设置位于右边,且没有边框

C# WPF后台动态添加控件(经典)

C# WPF后台动态添加控件(经典)

C# WPF 如何向combobox控件添加类型为comboboxitem的项?