日期:2014-5-18 浏览次数:20281次 点赞次数:20

wpf中 XML解析与绑定
<?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页面? 用什么布局好、最好带分页

------解决方案--------------------
xml 反序列化成 List<class> 绑定到 Grid 上
------解决方案--------------------
探讨

xml 反序列化成 List<class> 绑定到 Grid 上

------解决方案--------------------
用DataSet.ReadXml();
然后用DataSet绑定界面控件!
------解决方案--------------------
根据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 等控件上