protected SelectDiagramViewModel()
        {
            var storage = new DiagramStorage();

            Names        = storage.DiagramData.Select(x => x.Name).ToArray();
            SelectedName = Names.FirstOrDefault();
        }
        private void OnCustomLoadDocument(object sender, DevExpress.Xpf.Diagram.DiagramCustomLoadDocumentEventArgs e)
        {
            if (e.DocumentSource == null)
            {
                diagram.NewDocument();
                return;
            }
            var storage     = new DiagramStorage();
            var diagramInfo = storage.DiagramData.FirstOrDefault(x => x.Name == (string)e.DocumentSource);

            if (diagramInfo != null)
            {
                diagram.LoadDocument(new MemoryStream(diagramInfo.Data));
            }
            e.Handled = true;
        }
        private void OnCustomSaveDocument(object sender, DevExpress.Xpf.Diagram.DiagramCustomSaveDocumentEventArgs e)
        {
            var storage     = new DiagramStorage();
            var diagramInfo = storage.DiagramData.FirstOrDefault(x => x.Name == (string)e.DocumentSource);

            if (diagramInfo == null)
            {
                diagramInfo = new DiagramData()
                {
                    Name = (string)e.DocumentSource
                };
                storage.DiagramData.Add(diagramInfo);
            }
            var stream = new MemoryStream();

            diagram.SaveDocument(stream);
            diagramInfo.Data = stream.ToArray();
            storage.SaveChanges();
            e.Handled = true;
        }