У меня есть меню WPF и элемент управления Tab. Я хотел бы, чтобы список пунктов меню был сгенерирован из коллекции TabItems на моем элементе управления вкладками. Я привязываю свой элемент управления вкладками к коллекции для создания TabItems. У меня есть стиль TabItem, который использует ContentPresenter для отображения текста TabItem в TextBlock. Когда я привязываю элементы вкладки к моему меню, элементы меню пусты. Я использую Style Setter для установки имени элемента меню, но я не уверен, какое свойство TabItem я бы использовал для установки текста MenuItem. Есть ли обходной путь для моего сценария? Можно ли выполнить привязку к свойству Заголовок элемента вкладки, когда я заранее не знаю количество вкладок? Ниже приведена копия моих объявлений xaml. Вкладка Управление и элементы:
<DataTemplate x:Key="ClosableTabItemTemplate">
<DockPanel HorizontalAlignment="Stretch">
<Button
Command="{Binding Path=CloseWorkSpaceCommand}"
Content="X"
Cursor="Hand"
DockPanel.Dock="Right"
Focusable="False"
FontFamily="Courier"
FontSize="9"
FontWeight="Bold"
Margin="10,1,0,0"
Padding="0"
VerticalContentAlignment="Bottom"
Width="16" Height="16"
Background="Red"
/>
<ContentPresenter HorizontalAlignment="Center"
Content="{Binding Path=DisplayName}">
<ContentPresenter.Resources>
<Style TargetType="{x:Type TextBlock}"/>
</ContentPresenter.Resources>
</ContentPresenter>
</DockPanel>
</DataTemplate>
<DataTemplate x:Key="WorkspacesTemplate">
<TabControl
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource ClosableTabItemTemplate}"
Margin="10"
Background="#4C4C4C"/>
</DataTemplate>
Мое меню и частичный список стилей
// Я не уверен, какое значение я должен использовать, так как я не использую заголовок
<Menu Background="Transparent">
<MenuItem Style="{StaticResource TabMenuButtonStyle}"
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type TabControl}}, Path=Items}"
ItemContainerStyle="{StaticResource TabMenuItem}">
</MenuItem>
</Menu>