public void Show(BaseScreen baseScreen, int insertIndex) { int index = -1; foreach (TabItem item in this.tabControl.Items) { index++; if (item.Content == null) { continue; } BaseScreen _baseScreen = item.Content as BaseScreen; if (_baseScreen == baseScreen) { this.tabControl.SelectedIndex = index; return; } } TabItem tabItem = this.CreateTabItem(baseScreen, true); // Events baseScreen.BeforeLoading(); if (lastScreen != null) { lastScreen.BeforeUnLoading(); } if (insertIndex >= 0 && insertIndex < this.tabControl.Items.Count) { this.tabControl.Items.Insert(insertIndex, tabItem); } else { this.tabControl.Items.Add(tabItem); } this.tabControl.SelectedItem = tabItem; // Events if (lastScreen != null) { lastScreen.AfterUnLoading(); } baseScreen.AfterLoading(); lastScreen = baseScreen; }
public void Hide(BaseScreen baseScreen) { TabItem tabItem = this.GetItem(baseScreen); if (tabItem != null) { // Events baseScreen.BeforeUnLoading(); this.tabControl.Items.Remove(tabItem); tabItem.Content = null; this.loadedScreens &= ~((ScreenType)baseScreen.BaseScreenType); // Events baseScreen.AfterUnLoading(); } }
public void Hide(ScreenType type) { if ((this.loadedScreens & type) != type) { return; } TabItem tabItem = this.GetItem(type); if (tabItem != null) { BaseScreen screenToHide = tabItem.Content as BaseScreen; // Events screenToHide.BeforeUnLoading(); this.tabControl.Items.Remove(tabItem); tabItem.Content = null; this.loadedScreens &= ~type; // Events screenToHide.AfterUnLoading(); } }