Как я решил (спросив у ведущего архитектора) ...
Создание интерфейса ITabActivator одним методом Activate.
Создайте класс, производный от Grid и ITabActivator, с именем TabPageActivator. Конструктор которого принимает TabITem и TabControl.
Вместо добавления простой сетки в TabItem.Contents добавьте TabPageActivator.
Измените определение родителя, чтобы использовать ...
DependencyObject parent = _Control.Parent;
... вместо использования VisualTreeHelper.
Итак, когда вы переходите к тесту Иерархии для ...
if (родительский объект - TabActivator)
(родительский как ITabActivator) .Activate ()
... так что когда активировать называется
m_TabControl.SelectedItem = m_TabItem; // Из параметров конструктора.
... и не забывайте, что у вас могут быть вложенные вкладки, поэтому вам нужно продолжать подниматься по Иерархии.