В следующем примере xaml каждый элемент табуляции имеет общий доступ к тому же TextBox. Это имеет смысл, на каком-то уровне, я думаю ... но это неожиданное поведение и почти похоже на ошибку. И я не мог найти никакой информации в документах, объясняющих поведение, или как правильно обойти это.TabItems TabControl, разделяющий один и тот же контент ... Не хочу
<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; он должен по крайней мере быть факультативным для ситуаций, когда это нецелесообразно.
Какова ваша цель? Я уверен, что мы можем найти решение вашей проблемы по-другому, как только мы это узнаем =) – hkon
У меня нет хорошего решения для этой проблемы, но меня действительно интересуют ответы, которые могут возникнуть. .. Это поведение - настоящая боль. Иногда имеет смысл, что шаблон контента разделяется между вкладками, но очень часто это не так, как правило, когда вы создаете интерфейс с вкладками –
@hkon: я хочу, чтобы каждая вкладка имела свой собственный контент, как он определен в шаблоне обмена одним экземпляром между вкладками. Связывание данных работает при сохранении привязанных данных в синхронизации между вкладками, но это может вызвать некоторые проблемы. Возможно, пользователь набрал полосу прокрутки на одной вкладке, и ее положение затем забывается после перехода на нее. – Siege