private void Save_Click(object sender, RoutedEventArgs e) { FileInfo f = new FileInfo(SavePath); f.Directory.Create(); using (System.Windows.Forms.SaveFileDialog sfd = new System.Windows.Forms.SaveFileDialog()) { sfd.FileName = SavePath; sfd.CreatePrompt = true; sfd.CheckFileExists = false; sfd.CheckPathExists = false; sfd.Filter = SaveFilter; if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { var coll = BatteryList; if (((sender as System.Windows.Controls.Control).Tag as string) == "Selected") { coll = new SObservableCollection <Battery>(); coll.Add(SelectedBattery); } XmlSerializer s = new XmlSerializer(typeof(SObservableCollection <Battery>)); s.Serialize(new StreamWriter(sfd.FileName), coll); } } }
private void Load_Click(object sender, RoutedEventArgs e) { using (System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog()) { ofd.FileName = SavePath; ofd.Filter = SaveFilter; if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { XmlSerializer s = new XmlSerializer(typeof(SObservableCollection <Battery>)); SObservableCollection <Battery> loadedBatteries = s.Deserialize(new StreamReader(ofd.FileName)) as SObservableCollection <Battery>; if (((sender as System.Windows.Controls.Control).Tag as string) == "New") { SelectedBattery = null; BatteryList.Clear(); } foreach (var b in loadedBatteries) { b.ReInitialize(); b.PropertyChanged += Battery_PropertyChanged; BatteryList.Add(b); } } } }