private UIViewController ResolveView(IRoutableViewModel viewModel, string contract) { if (viewModel == null) { return(null); } var viewLocator = this.ViewLocator ?? ReactiveUI.ViewLocator.Current; var view = viewLocator.ResolveView(viewModel, contract); if (view == null) { throw new Exception( string.Format( "Couldn't find a view for view model. You probably need to register an IViewFor<{0}>", viewModel.GetType().Name)); } view.ViewModel = viewModel; var viewController = view as UIViewController; if (viewController == null) { throw new Exception( string.Format( "View type {0} for view model type {1} is not a UIViewController", view.GetType().Name, viewModel.GetType().Name)); } return(viewController); }
protected IObservable <Page> PageForViewModel(IRoutableViewModel vm) { if (vm == null) { return(Observable.Empty <Page>()); } var ret = ViewLocator.Current.ResolveView(vm); if (ret == null) { var msg = String.Format( "Couldn't find a View for ViewModel. You probably need to register an IViewFor<{0}>", vm.GetType().Name); return(Observable.Throw <Page>(new Exception(msg))); } ret.ViewModel = vm; var pg = (Page)ret; pg.Title = vm.UrlPathSegment; return(Observable.Return(pg)); }
protected IObservable<Page> PageForViewModel(IRoutableViewModel vm) { if (vm == null) return Observable.Empty<Page>(); var ret = ViewLocator.Current.ResolveView(vm); if (ret == null) { var msg = String.Format( "Couldn't find a View for ViewModel. You probably need to register an IViewFor<{0}>", vm.GetType().Name); return Observable.Throw<Page>(new Exception(msg)); } ret.ViewModel = vm; var pg = (Page)ret; pg.Title = vm.UrlPathSegment; return Observable.Return(pg); }
private UIViewController ResolveView (IRoutableViewModel viewModel, string contract) { if (viewModel == null) { return null; } var viewLocator = this.ViewLocator ?? ReactiveUI.ViewLocator.Current; var view = viewLocator.ResolveView (viewModel, contract); if (view == null) { throw new Exception ( string.Format ( "Couldn't find a view for view model. You probably need to register an IViewFor<{0}>", viewModel.GetType ().Name)); } view.ViewModel = viewModel; var viewController = view as UIViewController; if (viewController == null) { throw new Exception ( string.Format ( "View type {0} for view model type {1} is not a UIViewController", view.GetType ().Name, viewModel.GetType ().Name)); } return viewController; }