GetAutoWireViewModel() public static method

public static GetAutoWireViewModel ( BindableObject, bindable ) : bool
bindable BindableObject,
return bool
        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);
        }
Example #2
0
 internal static void AutowireViewModel(object viewOrViewModel)
 {
     if (viewOrViewModel is FrameworkElement view && ViewModelLocator.GetAutoWireViewModel(view) is null)
     {
         ViewModelLocator.SetAutoWireViewModel(view, true);
     }
 }
        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();
        }
Example #4
0
 public static void AutowireViewModel(object viewOrViewModel)
 {
     if (viewOrViewModel is FrameworkElement view && view.DataContext is null && ViewModelLocator.GetAutoWireViewModel(view) is null)
     {
         ViewModelLocator.SetAutoWireViewModel(view, true);
     }
 }
Example #5
0
        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);
        }