object ITypeResolver.CreateInstance(string name, string identifier) { var type = ((ITypeResolver)this).GetType(name); #if NETFX_CORE var isViewModel = type.GetTypeInfo().IsSubclassOf(typeof(ViewModel)); #else var isViewModel = typeof(ViewModel).IsAssignableFrom(type); #endif // IsAssignableFrom doesn't work with winRT // typeof(ViewModel).IsAssignableFrom(type); if (isViewModel) { var contextViewModel = PersistantViewModels.FirstOrDefault(p => p.Identifier == identifier); if (contextViewModel != null) { return(contextViewModel); } return(Activator.CreateInstance(type)); } var view = PersistantViews.FirstOrDefault(p => p.Identifier == identifier); if (view != null) { Debug.Log(string.Format("Loading View: {0} - {1}", name, identifier)); return(view); } return(ViewNotFoundOnLoad(name, identifier)); }
public void RegisterView(ViewBase view, ViewModel viewModel = null) { var vm = viewModel ?? view.ViewModelObject; if (!PersistantViews.Contains(view)) { PersistantViews.Add(view); } if (!PersistantViewModels.Contains(vm)) { PersistantViewModels.Add(vm); } //vm.Identifier = view.Identifier; }
object ITypeResolver.CreateInstance(string name, string identifier) { var type = ((ITypeResolver)this).GetType(name); var isViewModel = typeof(ViewModel).IsAssignableFrom(type); if (isViewModel) { var contextViewModel = PersistantViewModels.FirstOrDefault(p => p.Identifier == identifier); if (contextViewModel != null) { return(contextViewModel); } return(Activator.CreateInstance(type)); } var view = PersistantViews.FirstOrDefault(p => p.Identifier == identifier); if (view != null) { Debug.Log(string.Format("Loading View: {0} - {1}", name, identifier)); return(view); } return(ViewNotFoundOnLoad(name, identifier)); }
public void UnRegisterView(ViewBase viewBase) { PersistantViews.Remove(viewBase); }