В следующем примере xaml заставляет каждый элемент вкладки использовать один и тот же TextBox.Это имеет смысл, на некотором уровне, я думаю ... но это неожиданное поведение, и почти похоже на ошибку.И я не смог найти никакой информации в документах, объясняющей поведение или как правильно его обойти.
<TabControl>
<TabControl.Resources>
<Style TargetType="TabItem">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBox />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
<TabItem Name="tab1" />
<TabItem Name="tab2" />
</TabControl>
При переключении между tab1 и tab2 используется тот же TextBox, когда я ожидалновый TextBox для каждой вкладки.Как я могу получить последний случай?
Создание подкласса TabItem и превращение его содержимого в TextBox по умолчанию - это один из способов сделать это, но я просто хочу убедиться, что я не пропускаю ничего.*
Редактировать
Я понимаю, что установка содержимого явно для каждой вкладки решит проблему, но вкладки должны создаваться динамически.Я хочу использовать шаблон содержимого, чтобы я мог добавлять новые вкладки с помощью привязки данных и не раскрывать содержимое, поскольку оно вызывает странное поведение.
Возможно, в текущей реализации TabControl не существует декларативного подхода крешая это.Это довольно тривиальная настройка содержимого в коде, но такие вещи всегда чувствуются неправильно в WPF.Мне это кажется неоправданной оптимизацией TabControl;по крайней мере, оно должно быть необязательным в ситуациях, когда это нецелесообразно.