wpf中 XML解析与绑定

VeRooney 2011-12-28 09:44:55
<?xml version="1.0" encoding="utf-8" ?>
<School>

<Grade>
<Name>一年级</Name>
<Id>1</Id>
<Classes>
<Class>
<Name>一班</Name>
<Id>1</Id>
<Student>50</Student>
</Class>
<Class>
<Name>二班</Name>
<Id>2</Id>
<Student>45</Student>
</Class>
<Classes>
</Grade>

<Grade>
<Name>二年级</Name>
<Classes>
<Class>
<Name>一班</Name>
<Student>50</Student>
</Class>
<Class>
<Name>二班</Name>
<Student>45</Student>
</Class>
<Classes>
</Grade>
</School>
这是接口返回的XML数据

如何循环取出绑定到Wpf页面? 用什么布局好、最好带分页
...全文
180 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdl2005lyx 2011-12-28
  • 打赏
  • 举报
回复
用DataSet.ReadXml();
然后用DataSet绑定界面控件。。。
sdl2005lyx 2011-12-28
  • 打赏
  • 举报
回复
用DataSet.ReadXml();
然后用DataSet绑定界面控件!
VeRooney 2011-12-28
  • 打赏
  • 举报
回复
maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647" 改大了还是不行、 求解
VeRooney 2011-12-28
  • 打赏
  • 举报
回复
string a= client.GetFlightInfo(loginXml(), ParamsXml());
错误信息:已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性?
Bullatus 2011-12-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fangxinggood 的回复:]

xml 反序列化成 List<class> 绑定到 Grid 上
[/Quote]
感觉这个结构TreeView更直观一些
机器人 2011-12-28
  • 打赏
  • 举报
回复
xml 反序列化成 List<class> 绑定到 Grid 上
VeRooney 2011-12-28
  • 打赏
  • 举报
回复
谢谢大家、问题也解决、
冥想 2011-12-28
  • 打赏
  • 举报
回复
如上 是 部分关键代码
还有种方法是用直接用xml作为数据源绑定到wpf 的控件上,
可以google xmldataprovider 不知道可以再回复这里
冥想 2011-12-28
  • 打赏
  • 举报
回复
根据xml结构 恰好 可以先 封装成3个 类
public class School : List<Grade>
{}
public class Grade
{
public Grade()
{
Classes = new List<Class>();
}
public string Name { get; set; }
public int Id { get; set; }
public List<Class> Classes { get; set; }
}

public class Class
{
public string Name { get; set; }
public int Id { get; set; }
public int Student { get; set; }
}

然后把得到的xml反序列化出来
public T Deserialize<T>(string content)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
using (Stream stream = new MemoryStream(Encoding.Default.GetBytes(content)))
{
T obj = default(T);
try
{
obj = (T)xmlSerializer.Deserialize(stream);
}
catch
{
obj = default(T);
}
return obj;
}
}

调用
School school = school.Deserialize<School>(content);

最后这个已经是 数据集了,可以绑定到gridview listview 等控件上

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧