private void LoadScene(string filename) { lines.Clear(); lineGroups.Clear(); MainCanvas.Children.Clear(); currentSelection.Clear(); lastClickedLine = null; using (FileStream fs = new FileStream(filename, FileMode.OpenOrCreate)) { BinaryFormatter binaryFormatter = new BinaryFormatter(); List <ICanvasObject> linesWithoutGroups = (List <ICanvasObject>)binaryFormatter.Deserialize(fs); lineGroups = (List <LineGroup>)binaryFormatter.Deserialize(fs); foreach (var line in linesWithoutGroups) { MyLine myLine = line as MyLine; myLine.SetLineValues(); MainCanvas.Children.Add(myLine.Line); lines.Add(myLine.Line, myLine); } foreach (var group in lineGroups) { LineGroup myGroup = group as LineGroup; foreach (var line in myGroup.Lines) { line.SetLineValues(); MainCanvas.Children.Add(line.Line); lines.Add(line.Line, myGroup); } } MessageBox.Show("Load completed!"); } }