/// <summary> /// Shows a modal dialog for the specified model. /// </summary> /// <param name = "rootModel">The root model.</param> /// <param name = "context">The context.</param> public virtual void ShowDialog(object rootModel, object context = null) { var navigationSvc = IoC.Get<INavigationService>(); var page = navigationSvc.CurrentContent as PhoneApplicationPage; if(page == null) throw new InvalidOperationException( string.Format("In order to use ShowDialog the view currently loaded in the application frame ({0})" + " should inherit from PhoneApplicationPage or one of its descendents.", navigationSvc.CurrentContent.GetType())); var host = new DialogHost(page); var view = ViewLocator.LocateForModel(rootModel, host, context); host.Content = view; host.SetValue(View.IsGeneratedProperty, true); ViewModelBinder.Bind(rootModel, host, null); host.SetActionTarget(rootModel); var activatable = rootModel as IActivate; if(activatable != null) activatable.Activate(); var deactivator = rootModel as IDeactivate; if(deactivator != null) host.Closed += delegate { deactivator.Deactivate(true); }; host.Open(); }
/// <summary> /// Shows a modal dialog for the specified model. /// </summary> /// <param name = "rootModel">The root model.</param> /// <param name = "context">The context.</param> /// <param name = "settings">The optional dialog settings.</param> public virtual void ShowDialog(object rootModel, object context = null, IDictionary<string, object> settings = null) { var navigationSvc = IoC.Get<INavigationService>(); var host = new DialogHost(navigationSvc); var view = ViewLocator.LocateForModel(rootModel, host, context); host.Content = view; host.SetValue(View.IsGeneratedProperty, true); ViewModelBinder.Bind(rootModel, host, null); host.SetActionTarget(rootModel); ApplySettings(host, settings); var activatable = rootModel as IActivate; if (activatable != null) { activatable.Activate(); } var deactivator = rootModel as IDeactivate; if (deactivator != null) { host.Closed += delegate { deactivator.Deactivate(true); }; } host.Open(); }
/// <summary> /// Shows a modal dialog for the specified model. /// </summary> /// <param name = "rootModel">The root model.</param> /// <param name = "context">The context.</param> /// <param name = "settings">The optional dialog settings.</param> public virtual void ShowDialog(object rootModel, object context = null, IDictionary <string, object> settings = null) { var navigationSvc = IoC.Get <INavigationService>(); var host = new DialogHost(navigationSvc); var view = ViewLocator.LocateForModel(rootModel, host, context); host.Content = view; host.SetValue(View.IsGeneratedProperty, true); ViewModelBinder.Bind(rootModel, host, null); host.SetActionTarget(rootModel); ApplySettings(host, settings); var activatable = rootModel as IActivate; if (activatable != null) { activatable.Activate(); } var deactivator = rootModel as IDeactivate; if (deactivator != null) { host.Closed += delegate { deactivator.Deactivate(true); }; } host.Open(); }