示例#1
0
        public void OpenTab(Control control, string header, object tag, object dataContext)
        {
            if (tag == null)
            {
                throw new ArgumentNullException("tag");
            }

            TabItem tabItem = GetTabFor(tag);

            if (tabItem == null)
            {
                tabItem             = new TabItem();
                tabItem.Header      = header;
                tabItem.Tag         = tag;
                tabItem.DataContext = dataContext;
                tabItem.Content     = control;
                tabItem.IsSelected  = true;
                OpenTabItems.Add(tabItem);

                if (dataContext is BaseViewModel)
                {
                    ((BaseViewModel)dataContext).CloseRequested += TabControlViewModel_CloseRequested;
                }
            }
            SelectedTabItem = tabItem;
        }
示例#2
0
 internal void SelectTab(BaseViewModel viewModel)
 {
     if (IsOpen(viewModel))
     {
         SelectedTabItem = OpenTabItems.First(i => i.DataContext == viewModel);
     }
 }
示例#3
0
        void TabControlViewModel_CloseRequested(object sender, CloseEventHandlerArgs args)
        {
            BaseViewModel viewModel = sender as BaseViewModel;

            OpenTabItems.Remove(GetTabFor(viewModel));
        }