void Save(PageItem Page) { try { SaveFileDialog dlg = new SaveFileDialog() { FileName = "Page", Filter = "All Files (*.*)|*.*|Xml Files (*.xml)|*.xml", FilterIndex = 2 }; if (dlg.ShowDialog() == true) { using (TextWriter writer = new StreamWriter(dlg.FileName)) { XmlSerializer serializer = new XmlSerializer(Page.GetType(), Page.GetTypes()); serializer.Serialize(writer, Page); } } } catch (Exception ex) { Debug.Print(ex.Message); } }
void Open(PageItem Page) { try { OpenFileDialog dlg = new OpenFileDialog() { FileName = "", Filter = "All Files (*.*)|*.*|Xml Files (*.xml)|*.xml", FilterIndex = 2 }; if (dlg.ShowDialog() == true) { bool IsPrinting = Page.IsPrinting; bool IsGridVisible = Page.IsGridVisible; bool IsDeletedVisible = Page.IsDeletedVisible; using (TextReader reader = new StreamReader(dlg.FileName)) { XmlSerializer serializer = new XmlSerializer(Page.GetType(), Page.GetTypes()); PageItem newPage = new PageItem(); newPage = (PageItem)serializer.Deserialize(reader); // restore not serialized valules newPage.IsPrinting = IsPrinting; newPage.IsGridVisible = IsGridVisible; newPage.IsDeletedVisible = IsDeletedVisible; // newPage.Signals = ?? // get all DataBlockLogicItem items //var list = from item in newPage.Items // where item is DataBlockLogicItem // select item; this.DataContext = newPage; Page = null; } } } catch (Exception ex) { Debug.Print(ex.Message); } }