void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (sender != tabControl || e.Source != tabControl) { return; } Debug.Assert(e.RemovedItems.Count <= 1); Debug.Assert(e.AddedItems.Count <= 1); TabItemImpl selected = null, unselected = null; if (e.RemovedItems.Count >= 1) { unselected = e.RemovedItems[0] as TabItemImpl; if (unselected == null) { return; } } if (e.AddedItems.Count >= 1) { selected = e.AddedItems[0] as TabItemImpl; if (selected == null) { return; } } tabGroupService.SetActive(this); tabGroupService.OnSelectionChanged(this, selected, unselected); }