public void ComplexTest1() { TabViewModel tab1VM = null; TabViewModel tab2VM = null; TabContentViewModel tab1ContentVM = null; TabContentViewModel tab2ContentVM = null; ViewInjectionManager.Default.Inject("mainRegion", "tab1", () => tab1VM = new TabViewModel() { RegionName = "tab1ContentRegion" }, typeof(TabView)); ViewInjectionManager.Default.Inject("mainRegion", "tab2", () => tab2VM = new TabViewModel() { RegionName = "tab2ContentRegion" }, typeof(TabView)); ViewInjectionManager.Default.Inject("tab1ContentRegion", "tab1Content", () => tab1ContentVM = new TabContentViewModel(), typeof(TabContentView)); ViewInjectionManager.Default.Inject("tab2ContentRegion", "tab2Content", () => tab2ContentVM = new TabContentViewModel(), typeof(TabContentView)); TabControl tabControl = new TabControl(); ViewInjectionService mainService = new ViewInjectionService() { RegionName = "mainRegion" }; Interaction.GetBehaviors(tabControl).Add(mainService); Window.Content = tabControl; EnqueueShowWindow(); EnqueueCallback(() => { Assert.AreEqual(1, tab1VM.NavigatedCount); Assert.AreEqual(0, tab1ContentVM.NavigatedCount); Assert.IsNull(tab2ContentVM); LayoutTreeHelper.GetVisualChildren(tabControl).OfType <TabContentView>().First(x => x.DataContext == tab1ContentVM); ViewInjectionManager.Default.Navigate("tab2ContentRegion", "tab2Content"); }); EnqueueWindowUpdateLayout(); EnqueueCallback(() => { Assert.AreEqual(1, tab1VM.NavigatedCount); Assert.AreEqual(0, tab1ContentVM.NavigatedCount); Assert.IsNull(tab2ContentVM); ViewInjectionManager.Default.Navigate("mainRegion", "tab2"); ViewInjectionManager.Default.Navigate("tab2ContentRegion", "tab2Content"); }); EnqueueWindowUpdateLayout(); EnqueueCallback(() => { Assert.AreEqual(1, tab1VM.NavigatedCount); Assert.AreEqual(1, tab1VM.NavigatedAwayCount); Assert.AreEqual(1, tab2VM.NavigatedCount); Assert.AreEqual(0, tab1ContentVM.NavigatedCount); Assert.AreEqual(0, tab1ContentVM.NavigatedAwayCount); Assert.AreEqual(1, tab2ContentVM.NavigatedCount); LayoutTreeHelper.GetVisualChildren(tabControl).OfType <TabContentView>().First(x => x.DataContext == tab2ContentVM); }); EnqueueTestComplete(); }
private void ShowTab(TabContentViewModel info, bool toForeground) { var oldInfo = _mainViewModel.Tabs.FirstOrDefault(d => d.Title == info.Title); int index; if (oldInfo != null) { index = _mainViewModel.Tabs.IndexOf(oldInfo); _mainViewModel.Tabs.RemoveAt(index); _mainViewModel.Tabs.Insert(index, info); } else { _mainViewModel.Tabs.Add(info); index = _mainViewModel.Tabs.Count - 1; } if (toForeground || _mainViewModel.Tabs.Count == 1) { _mainViewModel.SelectedIndex = index; } }
public TabContentView(TabContentViewModel viewModel) { InitializeComponent(); DataContext = viewModel; }
public TabContentViewModelTests() { _viewModel = DependencyResolver.Resolve <TabContentViewModel>(); _navbarViewModel = DependencyResolver.Resolve <NavbarViewModel>(); }