示例#1
0
        public static void RegisterSimpleTab <TView, TModel>(this IRegionManager regionManager, string tabControlRegion, string contentRegionName, HelpTopic helpTopic, IWhitelistedServiceLocator whitelistedServiceLocator)
            where TView : class
            where TModel : class, ITabViewModel, IWhitelisted
        {
            regionManager.RegisterViewWithRegion(contentRegionName, typeof(TView));
            regionManager.RegisterViewWithRegion(tabControlRegion, () =>
            {
                var tab = new TabItem
                {
                    Name = typeof(TView).Name
                };

                var viewModel = whitelistedServiceLocator.GetInstance <TModel>();
                HelpProvider.SetHelpTopic(tab, helpTopic);

                var content = new ContentControl();
                content.SetValue(RegionManager.RegionNameProperty, contentRegionName);
                content.IsTabStop = false;
                content.SetResourceReference(FrameworkElement.StyleProperty, "TabUserControl");

                var contentContainer        = new Grid();
                contentContainer.Background = new SolidColorBrush(Colors.White);
                contentContainer.Children.Add(content);
                AddGpoBehavior(tab, contentContainer, viewModel);

                var header         = new IconTabHeader();
                tab.Header         = header;
                header.DataContext = viewModel;

                tab.Content = contentContainer;

                return(tab);
            });
        }
示例#2
0
        public static void RegisterMultiContentTab <T>(this IRegionManager regionManager, string tabControlRegion, string contentRegionName, HelpTopic helpTopic, IWhitelistedServiceLocator whitelistedServiceLocator) where T : class, ITabViewModel, IWhitelisted
        {
            regionManager.RegisterViewWithRegion(tabControlRegion, () =>
            {
                var tab = new TabItem();
                HelpProvider.SetHelpTopic(tab, helpTopic);
                var viewModel      = whitelistedServiceLocator.GetInstance <T>();
                var content        = new Grid();
                content.Background = Brushes.White;

                var contentRegion = new ItemsControl();
                contentRegion.SetResourceReference(FrameworkElement.StyleProperty, "TabUserControl");
                contentRegion.SetValue(RegionManager.RegionNameProperty, contentRegionName);
                contentRegion.IsTabStop  = false;
                contentRegion.Background = new SolidColorBrush(Colors.White);
                content.Children.Add(contentRegion);

                var header         = new IconTabHeader();
                tab.Header         = header;
                header.DataContext = viewModel;

                AddGpoBehavior(tab, content, viewModel);
                tab.Content = content;

                TransposerHelper.Register(header, viewModel);
                return(tab);
            });
        }
示例#3
0
        public static void RegisterMultiContentTab <T>(this IRegionManager regionManager, string tabControlRegion, string contentRegionName, HelpTopic helpTopic, IWhitelistedServiceLocator whitelistedServiceLocator) where T : class, ITabViewModel, IWhitelisted
        {
            regionManager.RegisterViewWithRegion(tabControlRegion, () =>
            {
                var tab = new TabItem();
                HelpProvider.SetHelpTopic(tab, helpTopic);
                var viewModel = whitelistedServiceLocator.GetInstance <T>();
                var content   = new Grid();

                var contentRegion = new ItemsControl();
                contentRegion.SetValue(RegionManager.RegionNameProperty, contentRegionName);
                contentRegion.Padding   = ContentPadding;
                contentRegion.IsTabStop = false;
                content.Children.Add(contentRegion);

                var header         = new IconTabHeader();
                tab.Header         = header;
                header.DataContext = viewModel;

                AddGpoBehavior(tab, content, viewModel);
                tab.Content = content;
                return(tab);
            });
        }