public IBinding Bind(object view, object frame, ComponentBatch batch)
        {
            if (view == null)
            {
                throw new ArgumentNullException(nameof(view));
            }
            if (frame == null)
            {
                throw new ArgumentNullException(nameof(frame));
            }
            if (batch == null)
            {
                throw new ArgumentNullException(nameof(batch));
            }

            if (_bindingsTable.TryGetValue(view, out Binding currentBinding))
            {
                throw new InvalidOperationException($"View {view} is already binded");
            }

            var controllers = batch.CreateControllersForTypes(view.GetType().GetTypeInfo(), frame.GetType().GetTypeInfo());
            var newBinding  = new Binding(this, view, frame, controllers.Where(x => x.Bind(view, frame)).ToArray());

            _bindingsTable.Add(view, newBinding);

            return(newBinding);
        }
        public override void RegisterComponents(ComponentBatch batch)
        {
            batch.RegisterControllerFactory(() => new MainPageController());
            batch.RegisterControllerFactory(() => new MainWindowNavigationController());
            batch.RegisterControllerFactory(() => new MainWindowController());
            batch.RegisterControllerFactory(() => new SettingsWindowController());
            batch.RegisterControllerFactory(() => new TweakItemController());
            batch.RegisterControllerFactory(() => new TweaksPageController());
            batch.RegisterControllerFactory(() => new FaqPageController());

            batch.RegisterServiceFactory <IHttpService>(() => new ThunderHawkHttpService());
            batch.RegisterServiceFactory <INewsProvider>(() => new TestNewsProvider());
        }
        public override void RegisterComponents(ComponentBatch batch)
        {
            batch.RegisterServiceFactory <ILangService>(() => new LangService());
            batch.RegisterServiceFactory <ILaunchService>(() => new LaunchService());
            batch.RegisterServiceFactory <ISteamApiService>(() => new SteamApiService());
            batch.RegisterServiceFactory <IUpdaterService>(() => new UpdaterService());

            batch.RegisterServiceFactory <ITweaksService>(() => new TweaksService());
            batch.RegisterServiceFactory <ISystemService>(() => new SystemService());
            batch.RegisterServiceFactory <IThunderHawkModManager>(() => new ThunderHawkModManager());
            batch.RegisterServiceFactory <IKeyValueStorage>(() => new ConfigKeyValueStorage());

            batch.RegisterControllerFactory(() => new TabControlWithListFrameBinder());
            batch.RegisterControllerFactory(() => new TabItemWithPageViewModelBinder());

            batch.RegisterControllerFactory(() => new MainWindowBackgroundController());
            batch.RegisterControllerFactory(() => new MainNewsPresentingController());

            batch.RegisterControllerFactory(() => new PageExtendingController <IUserInteractions, UserInteractionsExtension>());
        }
Ejemplo n.º 4
0
        public override void RegisterComponents(ComponentBatch batch)
        {
            batch.RegisterServiceFactory <IBindingManager>(() => new WPFBindingManager());
            batch.RegisterServiceFactory <IMainThreadDispatcher>(() => new WPFMainThreadDispatcher());
            batch.RegisterServiceFactory <IViewFactory>(() => new WPFViewFactory());

            batch.RegisterControllerFactory(() => new ButtonWithIActionFrameBinder());
            batch.RegisterControllerFactory(() => new ButtonWithITextFrameBinder());
            batch.RegisterControllerFactory(() => new ImageWithByteArrayFrameBinder());
            batch.RegisterControllerFactory(() => new LabelWithITextFrameBinder());
            batch.RegisterControllerFactory(() => new StackPanelWithListFrameBinder());
            batch.RegisterControllerFactory(() => new TextBlockWithITextFrameBinder());
            batch.RegisterControllerFactory(() => new ImageWithIUriFrameBinder());
            batch.RegisterControllerFactory(() => new TextBoxBaseWithITextFrameBinder());
            batch.RegisterControllerFactory(() => new TextBlockWithIActionFrameBinder());
            batch.RegisterControllerFactory(() => new ContentControlWithIListFrameBinder());
            batch.RegisterControllerFactory(() => new UIElementWithIControlFrameBinder());
            batch.RegisterControllerFactory(() => new ToggleButtonWithIToggleFrameBinder());
            batch.RegisterControllerFactory(() => new FrameWithIListFrameBinder());
            batch.RegisterControllerFactory(() => new FrameWithINavigationPanelFrameBinder());
            batch.RegisterControllerFactory(() => new ListViewWithIListFrameBinder());
        }
Ejemplo n.º 5
0
 public override void RegisterComponents(ComponentBatch batch)
 {
     batch.RegisterControllerFactory(() => new FrameCleanupController());
     batch.RegisterServiceFactory <ILogService>(() => new NLoggerLogService());
 }
Ejemplo n.º 6
0
 public abstract void RegisterComponents(ComponentBatch batch);