WPF將Xml數據源序列化到 ObservableCollection 類型集合上

舉個例子如何序列化XML文件到某個ObservableCollection<T>類型的集合上:

  定義一個ObservableCollection<類名>

private ObservableCollection<school> m_SchoolList;

public ObservableCollection<school> SchoolList
{
  get { return m_SchoolList; }
  set
      {
         m_SchoolList = value;
         this.RaisePropertyChanged("SchoolList");//這個是繼承監聽類的RaisePropertyChanged方法
      }
 }

將存放在項目某個文件下XML數據源的數據賦值到指定的這個ObservableCollection<類名>集合中

   

///
/// ObservableCollection<類名> 這個指的是要序列化到什麼集合上
/// string  filename = "文件名.xml" 這個參數需要更換爲要序列化的的文件名
///

public ObservableCollection<school> LoadeXML(string filename = "文件名.xml")
 {
     try
     {
         Type typePer = typeof(ObservableCollection<school>);  // 指明要序列化成的類型
         XmlSerializer xmlser = new XmlSerializer(typePer);
         FileStream fs = new FileStream(Path.Combine("Resources/Date", filename), FileMode.Open);     // 這一段是拼寫一個路徑,在Resourses文件夾下Date子文件加上提供的XMl的名稱拼寫一個完整路徑
         using (fs) //釋放那麼一下子 
              {
                 return (ObservableCollection<school>) xmlser.Deserialize(fs);//這纔是最終結果
              }
      }
     catch (Exception)
      {
                throw;
      }
 }

還差一步:

///把獲取到的數據賦值與之前定義的 ObservableCollection<school> SchoolList集合中
/// 我這是個構造函數不用管
public DataConvert()
 {
    SchoolList = LoadeXML();//通過反序列化的LoadeXML方法進行去賦值到SchoolList中
 }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章