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并赋值。追问
能有具体的代码给看一下吗?
追答先看一下
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 C# 如何在动态添加的grid控件中添加某个网格中的image控件的单击事件?