я использую DataBinding, чтобы показать все элементы управления в ItemsSourceDataTemplate не обнаруживается с TabControl
<TabControl Grid.Row="1" TabStripPlacement="Left" ItemsSource="{Binding Source={StaticResource WorkflowSelector}, Path=Workflows}" SelectedIndex="0">
<TabControl.ItemTemplate>
<DataTemplate>
<Label Content="{Binding PluginName}"></Label>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
WorkflowSelector является моим ViewModel, который содержит список всех элементов управления, которые должны быть показаны в TabControl.
Я создал itemTemplate, чтобы показать PluginName (общедоступное свойство) на вкладке , но ничего не отображается.
Если я проверяю визуальное дерево, я могу видеть привязку данных Tabcontrol, содержащую 1 элемент, который имеет свойство PluginName. Рассчитанное Значение BindingExpression этикетно пусто
первой вещь, которую я заметил, что ContentPresenter не имеет DataContext, в то время как Border делает имеет правильную DataContext
Дополнительно .. ., если я изменить ItemTemplate на ContentTemplate связывание работает правильно (но в содержании не в заголовке)
вы хотите изменить 'Header'' TabITem' или 'TabItem'? – StepUp
Я хочу изменить заголовок – Markus
Я не уверен, почему ваш код не работает, я думаю, он должен и [этот ответ] (http://stackoverflow.com/a/5651542/302677) показывает очень похожий код, который Я думаю, что работает. Лучше предположить, что у вас есть какой-то пользовательский стиль, или, возможно, неявный DataTemplate, который мешает. Можете ли вы скопировать/вставить соответствующие части в новый проект для тестирования? – Rachel