Вы не указали источник для привязки. Поэтому он использует локальный DataContext элемента tab
. Поскольку элемент tab
еще не имеет DataContext (это то, что вы пытаетесь установить), не говоря уже о том, для которого путь Content.DataContext
имеет смысл, это не сработает.
Вместо этого используйте что-то вроде:
Binding binding = new Binding("Content.DataContext")
{
RelativeSource = RelativeSource.Self
};
BindingOperations.SetBinding(tab, DataContextProperty, binding);
(В зависимости от ваших точных требований вы также можете захотеть исследовать, используя Binding.Source вместо Binding.RelativeSource.)
Параметр RelativeSource указывает, что привязка к совпадает с элементом привязки , а не с локальным DataContext - таким образом, DataContext элемента управления теперь привязан к DataContext содержимого тот же контроль, как требуется.