当前位置:   article > 正文

WPF将Xml数据源序列化到 ObservableCollection 类型集合上_.net xml observalcollection

.net xml observalcollection

举个例子如何序列化XML文件到某个ObservableCollection<T>类型的集合上:

  定义一个ObservableCollection<类名>

  1. private ObservableCollection<school> m_SchoolList;
  2. public ObservableCollection<school> SchoolList
  3. {
  4. get { return m_SchoolList; }
  5. set
  6. {
  7. m_SchoolList = value;
  8. this.RaisePropertyChanged("SchoolList");//这个是继承监听类的RaisePropertyChanged方法
  9. }
  10. }

将存放在项目某个文件下XML数据源的数据赋值到指定的这个ObservableCollection<类名>集合中

   

  1. ///
  2. /// ObservableCollection<类名> 这个指的是要序列化到什么集合上
  3. /// string filename = "文件名.xml" 这个参数需要更换为要序列化的的文件名
  4. ///
  5. public ObservableCollection<school> LoadeXML(string filename = "文件名.xml")
  6. {
  7. try
  8. {
  9. Type typePer = typeof(ObservableCollection<school>); // 指明要序列化成的类型
  10. XmlSerializer xmlser = new XmlSerializer(typePer);
  11. FileStream fs = new FileStream(Path.Combine("Resources/Date", filename), FileMode.Open); // 这一段是拼写一个路径,在Resourses文件夹下Date子文件加上提供的XMl的名称拼写一个完整路径
  12. using (fs) //释放那么一下子
  13. {
  14. return (ObservableCollection<school>) xmlser.Deserialize(fs);//这才是最终结果
  15. }
  16. }
  17. catch (Exception)
  18. {
  19. throw;
  20. }
  21. }

还差一步:

  1. ///把获取到的数据赋值与之前定义的 ObservableCollection<school> SchoolList集合中
  2. /// 我这是个构造函数不用管
  3. public DataConvert()
  4. {
  5. SchoolList = LoadeXML();//通过反序列化的LoadeXML方法进行去赋值到SchoolList中
  6. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/114505
推荐阅读
相关标签
  

闽ICP备14008679号