OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / HandBrakeWPF / ViewModels / ViewModelBase.cs
1 namespace HandBrakeWPF.ViewModels\r
2 {\r
3     using Caliburn.PresentationFramework.ApplicationModel;\r
4 \r
5     using Microsoft.Practices.ServiceLocation;\r
6 \r
7     /// <summary>\r
8     /// A Base Class for the View Models which contains reusable code.\r
9     /// </summary>\r
10     public class ViewModelBase : MultiPresenterManager\r
11     {\r
12         protected IServiceLocator Locator { get; private set; }\r
13 \r
14         public ViewModelBase(IServiceLocator locator)\r
15         {\r
16             this.Locator = locator;\r
17         }\r
18 \r
19         public void Show<T>() where T : IPresenter\r
20         {\r
21             this.ShutdownCurrent();\r
22             this.Open(Locator.GetInstance<T>());\r
23         }\r
24 \r
25         public void ShowDialog<T>() where T : IPresenter\r
26         {\r
27             Locator.GetInstance<IWindowManager>().ShowDialog(Locator.GetInstance<T>());\r
28         }\r
29         \r
30         public void Popup<T>() where T : IPresenter\r
31         {\r
32             Locator.GetInstance<IWindowManager>().Show(Locator.GetInstance<T>());\r
33         }\r
34     }\r
35 }\r