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