Ejemplo n.º 1
0
        public Window GetWindow <TView, TViewModel>(IEnumerable <Action <TView> > viewActions, IEnumerable <Action <TViewModel> > viewModelActions,
                                                    object[] additionalViewArgs, object[] additionalViewModelArgs) where TView : FrameworkElement where TViewModel : class
        {
            if (!typeof(TView).BaseType.IsEquivalentTo(typeof(Window)))
            {
                throw new ArgumentException($"{typeof(TView).Name} is not a Window");
            }

            IBinding binding = GetBinding <TView>();

            binding.BindingAdditionalArguments = additionalViewArgs;
            binding.ServiceAdditionalArguments = additionalViewModelArgs;

            Overlooker.CheckViewModelBinding <TView, TViewModel>(_viewModelsBindings);

            TView view = CreateView <TView>(binding);

            foreach (var action in viewActions)
            {
                action?.Invoke(view);
            }

            foreach (var action in viewModelActions)
            {
                action?.Invoke(view.DataContext as TViewModel);
            }

            return(view as Window);
        }
Ejemplo n.º 2
0
        public IView <TView, TViewModel> ResolveView <TView, TViewModel>() where TView : FrameworkElement where TViewModel : class
        {
            Overlooker.CheckExistenceBinding <TView>(_controllerModule.Bindings);
            Overlooker.CheckViewModelBinding <TView, TViewModel>(_controllerModule.Bindings);

            return(new ViewResolver <TView, TViewModel>(_viewFactory));
        }
Ejemplo n.º 3
0
        public IControllerConfigurator <TView, TViewModel> GetConfigs <TView, TViewModel>()
            where TView : FrameworkElement where TViewModel : class
        {
            Overlooker.CheckExistenceBinding <TView>(_controllerModule.Bindings);
            Overlooker.CheckViewModelBinding <TView, TViewModel>(_controllerModule.Bindings);

            return(new ControllerConfigurator <TView, TViewModel>(_viewFactory));
        }
Ejemplo n.º 4
0
        public TView GetView <TView, TViewModel>(Action <TViewModel> viewModelAction)
            where TView : FrameworkElement
            where TViewModel : class
        {
            IBinding binding = GetBinding <TView>();

            Overlooker.CheckViewModelBinding <TView, TViewModel>(_viewModelsBindings);

            TView view = CreateView <TView>(binding);

            viewModelAction?.Invoke(view.DataContext as TViewModel);

            return(view);
        }
Ejemplo n.º 5
0
        public TView GetView <TView, TViewModel>(Action <TViewModel> viewModelAction, params object[] viewModelArgs)
            where TView : FrameworkElement
            where TViewModel : class
        {
            IBinding binding = GetBinding <TView>();

            Overlooker.CheckViewModelBinding <TView, TViewModel>(_viewModelsBindings);

            binding.ServiceConstructorArguments = viewModelArgs;

            TView view = CreateView <TView>(binding);

            viewModelAction?.Invoke(view.DataContext as TViewModel);

            return(view);
        }
Ejemplo n.º 6
0
 private IBinding GetBinding <TKey>()
 {
     Overlooker.CheckExistenceBinding <TKey>(_viewModelsBindings);
     return(_viewModelsBindings.GetBinding <TKey>());
 }