private TabItem GetSelectedTabItem()
{
object selectedItem = SelectedItem;
if (selectedItem != null)
{
// Check if the selected item is a TabItem
TabItem tabItem = selectedItem as TabItem;
if (tabItem == null)
{
// It is a data item, get its TabItem container
tabItem = ItemContainerGenerator.ContainerFromIndex(SelectedIndex) as TabItem;
// Due to event leapfrogging, we may have the wrong container.
// If so, re-fetch the right container using a more expensive method.
// (BTW, the previous line will cause a debug assert in this case) [Dev10 452711]
if (tabItem == null ||
!ItemsControl.EqualsEx(selectedItem, ItemContainerGenerator.ItemFromContainer(tabItem)))
{
tabItem = ItemContainerGenerator.ContainerFromItem(selectedItem) as TabItem;
}
}
return(tabItem);
}
return(null);
}