public static SetAutoWireViewModel ( BindableObject bindable, bool value ) : void | ||
bindable | BindableObject | |
value | bool | |
return | void |
public IDialogResult ShowWindow(string name) { IDialogResult dialogResult = new DialogResult(ButtonResult.None); var content = _containerExtension.Resolve <object>(name); if (!(content is Window dialogContent)) { throw new NullReferenceException("A dialog's content must be a Window"); } if (dialogContent is Window view && view.DataContext is null && ViewModelLocator.GetAutoWireViewModel(view) is null) { ViewModelLocator.SetAutoWireViewModel(view, true); } if (!(dialogContent.DataContext is IDialogAware viewModel)) { throw new NullReferenceException("A dialog's ViewModel must implement the IDialogAware interface"); } if (dialogContent is IDialogWindow dialogWindow) { ConfigureDialogWindowEvents(dialogWindow, result => { dialogResult = result; }); } MvvmHelpers.ViewAndViewModelAction <IDialogAware>(viewModel, d => d.OnDialogOpened(null)); dialogContent.ShowDialog(); return(dialogResult); }
internal static void AutowireViewModel(object viewOrViewModel) { if (viewOrViewModel is FrameworkElement view && view.DataContext is null && ViewModelLocator.GetAutoWireViewModel(view) is null) { ViewModelLocator.SetAutoWireViewModel(view, true); } }
public async Task AutoWireViewModel_With_Custom_Resolver_And_Factory() { await ExecuteOnUIThread(() => { var page = new MockPage(); // Set the ViewTypeToViewModelTypeResolver ViewModelLocator.SetDefaultViewTypeToViewModelTypeResolver((viewType) => { var viewName = viewType.FullName; // The ViewModel is in the same namespace as the View var viewModelName = String.Format("{0}ViewModel", viewName); return(Type.GetType(viewModelName)); }); // Set the ViewTypeToViewModelTypeResolver ViewModelLocator.SetDefaultViewModelFactory((viewModelType) => { // The ViewModel has a constructor with no parameters return(Activator.CreateInstance(viewModelType) as ViewModel); }); // Fire AutoWireViewModelChanged ViewModelLocator.SetAutoWireViewModel(page, true); Assert.IsNotNull(page.DataContext); Assert.IsInstanceOfType(page.DataContext, typeof(MockPageViewModel)); }); }
protected override void InitializeShell(Window shell) { base.InitializeShell(shell); Container.GetContainer().RegisterShell(shell); ViewModelLocator.SetAutoWireViewModel(shell, true); }
/// <summary>Initializes a new instance of the <see cref="PlayerPage" /> class.</summary> public PlayerPage() { this.InitializeComponent(); if (!DesignMode.DesignModeEnabled) { ViewModelLocator.SetAutoWireViewModel(this, true); } }
public void AutoWireViewModelWithFactoryRegistration() { var page = new MockPage(); ViewModelLocator.Register(typeof(MockPage).ToString(), () => new MockPageViewModel()); ViewModelLocator.SetAutoWireViewModel(page, true); Assert.IsNotNull(page.BindingContext); Assert.IsInstanceOf(typeof(MockPageViewModel), page.BindingContext); }
//This method exists as a hack to get the XAML assebmlies loaded in the plugin public static void LoadAssemblies() { var av = new ICSharpCode.AvalonEdit.TextEditor(); var ac = new p.InvokeCommandAction(); i.InvokeCommandAction action = new i.InvokeCommandAction(); action.CommandName = "Loaded"; var window = new Window(); x.VisualStateUtilities.GetVisualStateGroups(window); ViewModelLocator.SetAutoWireViewModel(window, false); }
/// <summary> /// Initializes a new instance of the <see cref="MainPage"/> class. /// </summary> public MainPage() { this.InitializeComponent(); if (!DesignMode.DesignModeEnabled) { ViewModelLocator.SetAutoWireViewModel(this, true); this.ViewModel.PropertyChanged += this.ViewModelPropertyChanged; } }
public void ShouldLocateViewModelWithDefaultSettingsForViewsThatEndWithView() { ResetViewModelLocationProvider(); MockView view = new MockView(); Assert.Null(view.DataContext); ViewModelLocator.SetAutoWireViewModel(view, true); Assert.NotNull(view.DataContext); Assert.IsType <MockViewModel>(view.DataContext); }
/// <summary> /// This method exists as a hack to get the XAML assemblies loaded in the plugin. /// </summary> public static void LoadAssemblies() { i.InvokeCommandAction action = new i.InvokeCommandAction(); action.CommandName = "Loaded"; var window = new Window(); x.VisualStateUtilities.GetVisualStateGroups(window); ViewModelLocator.SetAutoWireViewModel(window, false); var action2 = new Prism.Interactivity.InvokeCommandAction(); action.CommandName = "Loaded"; }
public void ShouldLocateViewModelWithDefaultSettings() { ResetViewModelLocationProvider(); Mock view = new Mock(); Assert.IsNull(view.DataContext); ViewModelLocator.SetAutoWireViewModel(view, true); Assert.IsNotNull(view.DataContext); Assert.IsInstanceOfType(view.DataContext, typeof(MockViewModel)); }
/// <summary>Initializes a new instance of the <see cref="PlaylistPage" /> class.</summary> public PlaylistPage() { this.InitializeComponent(); if (!DesignMode.DesignModeEnabled) { ViewModelLocator.SetAutoWireViewModel(this, true); } this.ViewModel.PropertyChanged += this.ViewModelPropertyChanged; this.Unloaded += this.PlaylistPageUnloaded; }
/// <summary> /// This method exists as a hack to get the XAML assemblies loaded in the plugin. /// </summary> public static void LoadAssemblies() { var formatter = FormatterAssemblyStyle.Full; var action = new i.InvokeCommandAction(); action.CommandName = "Loaded"; var window = new Window(); ViewModelLocator.SetAutoWireViewModel(window, false); var action2 = new InvokeCommandAction(); action.CommandName = "Loaded"; }
public void ShouldUseCustomDefaultViewTypeToViewModelTypeResolverWhenSet() { ResetViewModelLocationProvider(); Mock view = new Mock(); Assert.Null(view.DataContext); ViewModelLocationProvider.SetDefaultViewTypeToViewModelTypeResolver(viewType => typeof(ViewModelLocatorFixture)); ViewModelLocator.SetAutoWireViewModel(view, true); Assert.NotNull(view.DataContext); Assert.IsType <ViewModelLocatorFixture>(view.DataContext); }
public async Task AutoWireViewModel_With_Factory_Registration() { await ExecuteOnUIThread(() => { var page = new MockPage(); // Register the ViewModel to the page ViewModelLocator.Register(typeof(MockPage).ToString(), () => new MockPageViewModel()); // Fire AutoWireViewModelChanged ViewModelLocator.SetAutoWireViewModel(page, true); Assert.IsNotNull(page.DataContext); Assert.IsInstanceOfType(page.DataContext, typeof(MockPageViewModel)); }); }
public void ShouldUseCustomFactoryWhenSet() { ResetViewModelLocationProvider(); Mock view = new Mock(); Assert.Null(view.DataContext); string viewModel = "Test String"; ViewModelLocationProvider.Register(view.GetType().ToString(), () => viewModel); ViewModelLocator.SetAutoWireViewModel(view, true); Assert.NotNull(view.DataContext); ReferenceEquals(view.DataContext, viewModel); }
public void ShouldUseCustomDefaultViewModelFactoryWhenSet() { ResetViewModelLocationProvider(); Mock view = new Mock(); Assert.Null(view.DataContext); object mockObject = new object(); ViewModelLocationProvider.SetDefaultViewModelFactory(viewType => mockObject); ViewModelLocator.SetAutoWireViewModel(view, true); Assert.NotNull(view.DataContext); ReferenceEquals(view.DataContext, mockObject); }
public void WhenOnAutoWireViewModelChangedThenViewBindingContextIsViewModel() { InitializeAViewModelIoC(); var view = new AView(); var autoWireViewModel = ViewModelLocator.GetAutoWireViewModel(view); Check.That(autoWireViewModel).IsFalse(); ViewModelLocator.SetAutoWireViewModel(view, true); Check.That(view.BindingContext).IsInstanceOf <AViewModel>(); autoWireViewModel = ViewModelLocator.GetAutoWireViewModel(view); Check.That(autoWireViewModel).IsTrue(); }
public void ShouldLocateViewModelAndResolveWithContainer() { var bootstrapper = new MockBootstrapper(); bootstrapper.Run(); bootstrapper.ContainerRegistry.Register <IService, MockService>(); var view = new MockView(); Assert.Null(view.DataContext); ViewModelLocator.SetAutoWireViewModel(view, true); Assert.NotNull(view.DataContext); Assert.IsType <MockViewModel>(view.DataContext); Assert.NotNull(((MockViewModel)view.DataContext).MockService); }
public void ShouldLocateViewModelAndResolveWithContainer() { var bootstrapper = new DefaultMunqBootstrapper(); bootstrapper.Run(); bootstrapper.BaseContainer.Register <IService, MockService>(); var view = new MockView(); view.DataContext.ShouldBeNull(); ViewModelLocator.SetAutoWireViewModel(view, value: true); view.DataContext.ShouldNotBeNull(); view.DataContext.ShouldBeOfType <MockViewModel>(); ((MockViewModel)view.DataContext).MockService.ShouldNotBeNull(); }
public void ShouldLocateViewModelAndResolveWithKernel() { var bootstrapper = new DefaultNinjectBootstrapper(); bootstrapper.Run(); bootstrapper.Kernel.Bind <IService>().To <MockService>(); var view = new MockView(); Assert.IsNull(view.DataContext); ViewModelLocator.SetAutoWireViewModel(view, true); Assert.IsNotNull(view.DataContext); Assert.IsInstanceOfType(view.DataContext, typeof(MockViewModel)); Assert.IsNotNull(((MockViewModel)view.DataContext).MockService); }
public void ShouldLocateViewModelAndResolveWithContainer() { var bootstrapper = new DefaultUnityBootstrapper(); bootstrapper.Run(); bootstrapper.BaseContainer.RegisterType <IService, MockService>(); MockView view = new MockView(); Assert.IsNull(view.DataContext); ViewModelLocator.SetAutoWireViewModel(view, true); Assert.IsNotNull(view.DataContext); Assert.IsInstanceOfType(view.DataContext, typeof(MockViewModel)); Assert.IsNotNull(((MockViewModel)view.DataContext).MockService); }
public void ShouldLocateViewModelAndResolveWithContainer() { var bootstrapper = new DefaultGraceBootstrapper(); bootstrapper.Run(); bootstrapper.BaseContainer.Configure(c => c.ExportAs <MockService, IService>()); MockView view = new MockView(); Assert.IsNull(view.DataContext); ViewModelLocator.SetAutoWireViewModel(view, true); Assert.IsNotNull(view.DataContext); Assert.IsInstanceOfType(view.DataContext, typeof(MockViewModel)); Assert.IsNotNull(((MockViewModel)view.DataContext).MockService); }
public async Task <IDialogResult> ShowDialog(string name, IDialogParameters parameters = null, string IdentifierName = "Root") { if (parameters == null) { parameters = new DialogParameters(); } var content = _containerExtension.Resolve <object>(name); if (!(content is FrameworkElement dialogContent)) { throw new NullReferenceException("A dialog's content must be a FrameworkElement"); } if (dialogContent is FrameworkElement view && view.DataContext is null && ViewModelLocator.GetAutoWireViewModel(view) is null) { ViewModelLocator.SetAutoWireViewModel(view, true); } if (!(dialogContent.DataContext is IDialogHostAware viewModel)) { throw new NullReferenceException("A dialog's ViewModel must implement the IDialogAware interface"); } viewModel.IdentifierName = IdentifierName; DialogOpenedEventHandler eventHandler = async (sender, eventArgs) => { var content = eventArgs.Session.Content; eventArgs.Session.UpdateContent(new ProgressDialog()); if (viewModel is IDialogHostAware aware) { await aware.OnDialogOpenedAsync(parameters); } eventArgs.Session.UpdateContent(content); }; return((IDialogResult)await DialogHost.Show(dialogContent, viewModel.IdentifierName, eventHandler)); }
private FrameworkElement GetDialogContent(string name, string IdentifierName = "Root") { var content = _containerExtension.Resolve <object>(name); if (!(content is FrameworkElement dialogContent)) { throw new NullReferenceException("A dialog's content must be a FrameworkElement"); } if (dialogContent is FrameworkElement view && view.DataContext is null && ViewModelLocator.GetAutoWireViewModel(view) is null) { ViewModelLocator.SetAutoWireViewModel(view, true); } if (!(dialogContent.DataContext is IHostDialogAware viewModel)) { throw new NullReferenceException("A dialog's ViewModel must implement the IDialogHostAware interface"); } viewModel.IdentifierName = IdentifierName; return(dialogContent); }
public async Task AutoWireViewModel_With_Custom_Resolver() { await DispatcherHelper.ExecuteOnUIThread(() => { var page = new MockPage(); // Set the ViewTypeToViewModelTypeResolver ViewModelLocationProvider.SetDefaultViewTypeToViewModelTypeResolver((viewType) => { var viewName = viewType.FullName; // The ViewModel is in the same namespace as the View var viewModelName = String.Format("{0}ViewModel", viewName); return(Type.GetType(viewModelName)); }); // Fire AutoWireViewModelChanged ViewModelLocator.SetAutoWireViewModel(page, true); Assert.IsNotNull(page.DataContext); Assert.IsInstanceOfType(page.DataContext, typeof(MockPageViewModel)); }); }
public MainWindow() { InitializeComponent(); ViewModelLocator.SetAutoWireViewModel(this, true); }
protected override void InitializeShell() { ViewModelLocator.SetAutoWireViewModel(this.Shell, true); ((MainWindow)this.Shell).Show(); }
public MvvmUserControl() { ViewModelLocator.SetAutoWireViewModel(this, true); DataContextChanged += MvvmUserControl_DataContextChanged; }
public void WhenOnAutoWireViewModelChangedAndViewModelNotRegisterThenNothing() { var view = new AView(); Check.ThatCode(() => ViewModelLocator.SetAutoWireViewModel(view, true)).Throws <KeyNotFoundException>(); }