private void DeSerializeXMLToObject(string filepath)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(SaveLoadCollection));

            using (StreamReader wr = new StreamReader(filepath))
            {
                SaveLoadCollection Load = (SaveLoadCollection)serializer.Deserialize(wr);
                classCollection.Clear();
                arrowCollection.Clear();
                ClassIndex = Load.tempDiagrams.Count + 1;
                foreach (Diagram tempDiagram in Load.tempDiagrams)
                {
                    classCollection.Add(new ClassViewModel(tempDiagram));
                }
                foreach (ArrowViewModel arrow in Load.tempArrows)
                {
                    ClassViewModel DiagramA = null;
                    ClassViewModel DiagramB = null;
                    foreach (ClassViewModel diagram in classCollection)
                    {
                        if (arrow.DiagramA.Id == diagram.Id)
                        {
                            DiagramA = diagram;
                        }
                        else if (arrow.DiagramB.Id == diagram.Id)
                        {
                            DiagramB = diagram;
                        }
                    }
                    ArrowViewModel tempArrow = new ArrowViewModel(DiagramA, DiagramB, arrow.arrow);
                    undoRedoController.AddAndExecute(new AddArrowCommand(arrowCollection, tempArrow));
                }
                undoRedoController.Reset();
            }
        }
        public void SerializeObjectToXML(string filepath)
        {
            SaveLoadCollection serializetype = new SaveLoadCollection(classCollection, arrowCollection);
            XmlSerializer      serializer    = new XmlSerializer(typeof(SaveLoadCollection));

            using (StreamWriter wr = new StreamWriter(filepath))
            {
                serializer.Serialize(wr, serializetype);
            }
        }