OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / HandBrakeWPF / ViewModels / ViewModelBase.cs
index 8295246..c07593b 100644 (file)
@@ -1,12 +1,35 @@
 namespace HandBrakeWPF.ViewModels\r
 {\r
-    using Caliburn.Core;\r
     using Caliburn.PresentationFramework.ApplicationModel;\r
 \r
+    using Microsoft.Practices.ServiceLocation;\r
+\r
     /// <summary>\r
     /// A Base Class for the View Models which contains reusable code.\r
     /// </summary>\r
     public class ViewModelBase : MultiPresenterManager\r
     {\r
+        protected IServiceLocator Locator { get; private set; }\r
+\r
+        public ViewModelBase(IServiceLocator locator)\r
+        {\r
+            this.Locator = locator;\r
+        }\r
+\r
+        public void Show<T>() where T : IPresenter\r
+        {\r
+            this.ShutdownCurrent();\r
+            this.Open(Locator.GetInstance<T>());\r
+        }\r
+\r
+        public void ShowDialog<T>() where T : IPresenter\r
+        {\r
+            Locator.GetInstance<IWindowManager>().ShowDialog(Locator.GetInstance<T>());\r
+        }\r
+        \r
+        public void Popup<T>() where T : IPresenter\r
+        {\r
+            Locator.GetInstance<IWindowManager>().Show(Locator.GetInstance<T>());\r
+        }\r
     }\r
 }\r