-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMainViewModel.cs
More file actions
57 lines (49 loc) · 2 KB
/
MainViewModel.cs
File metadata and controls
57 lines (49 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System;
using DevExpress.Mvvm.DataAnnotations;
using DevExpress.Mvvm;
using DevExpress.Mvvm.POCO;
using DocumentManagerSerialization.Properties;
using System.Collections.Generic;
using DocumentManagerSerialization.Common;
namespace DocumentManagerSerialization.ViewModels {
[POCOViewModel]
public class MainViewModel : ISupportLogicalLayout {
public IDocumentManagerService DocumentManagerService { get { return this.GetService<IDocumentManagerService>(); } }
public ILayoutSerializationService LayoutSerializationService { get { return this.GetService<ILayoutSerializationService>(); } }
public virtual ViewModelState State { get; set; }
public MainViewModel() {
State = new ViewModelState() { State = "I'm Root!" };
}
[Command]
public void OnWindowClosing() {
Settings.Default.LogicalLayout = this.SerializeDocumentManagerService();
Settings.Default.RootLayout = LayoutSerializationService.Serialize();
Settings.Default.Save();
}
[Command]
public void OnWindowLoaded() {
if (Settings.Default.LogicalLayout != null) {
this.RestoreDocumentManagerService(Settings.Default.LogicalLayout);
}
if (Settings.Default.RootLayout != null) {
LayoutSerializationService.Deserialize(Settings.Default.RootLayout);
}
}
[Command]
public void OpenDocument() {
var document = DocumentManagerService.CreateDocument("DocumentView", null, this);
document.Id = "Document" + Guid.NewGuid().ToString().Replace("-", "");
document.DestroyOnClose = false;
document.Title = "Root Document";
document.Show();
}
#region ISupportLogicalLayout
public bool CanSerialize {
get { return true; }
}
public IEnumerable<object> LookupViewModels {
get { return null; }
}
#endregion
}
}