private void ReadData(string file) { using (Stream myWriter = new FileStream(file, FileMode.Open)) { DataContractSerializer mySerializer = new DataContractSerializer(typeof(AllData), null, 0x7FFF /*maxItemsInObjectGraph*/, false /*ignoreExtensionDataObject*/, true /*preserveObjectReferences : this is where the magic happens */, null /*dataContractSurrogate*/); AllData newData = mySerializer.ReadObject(myWriter) as AllData; TheData = newData; MakeDataValid(); SetDatabinding(); TheData.StaticParameters.Refresh(); TheData.Refresh(); TheData.PropertyChanged += DataChanged; FileName = file; dirty = false; SetTitle(); rower1.GotoCatch(TheData.Edgevalues); } }
private void InitAllData() { Title = "Default"; FileName = ""; dirty = false; TheData = new AllData(); TheData.StaticParameters = canvas1.FindResource("staticParameters") as StaticParameters; TheData.ControlParameters = canvas1.FindResource("controlParameters") as ControlParameters; TheData.Edgevalues = canvas1.FindResource("limits") as EdgeValueCollection; TheData.Timing = canvas1.FindResource("strokeTiming") as StrokeTiming; TheData.StrokeSegments = canvas1.FindResource("strokeSegments") as Segments; TheData.RecoverSegments = canvas1.FindResource("recoverSegments") as Segments; TheData.Refresh(); TheData.PropertyChanged += DataChanged; }