我想将Menu
的一部分绑定到TabControl
TabItems
,但让它们水平显示而不是子菜单。
背景:我可以将TabItem
的{{1}}绑定到这样的TabControl
中;
Menu
这产生了这个:
我想要的是它看起来像这样:
尝试这样做;
<Style x:Key="TabMenuItem" TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Path=Header}" />
<Setter Property="IsCheckable" Value="True" />
<Setter Property="IsChecked" Value="{Binding Path=IsSelected, Mode=TwoWay}" />
</Style>
....
<Menu >
<MenuItem Header="My Menu" HorizontalAlignment="Left" >
<MenuItem Header="Tabs" ItemsSource="{Binding ElementName=MyTabControl, Path=Items}" ItemContainerStyle="{StaticResource TabMenuItem}" />
<MenuItem Header="SubItem 1"/>
<MenuItem Header="SubItem 2"/>
<MenuItem Header="SubItem 3"/>
</MenuItem>
</Menu>
运行时返回以下消息;
未处理的类型&#39; System.InvalidOperationException&#39;发生在PresentationFramework.dll
中其他信息:在使用ItemsSource之前,项目集合必须为空。
答案 0 :(得分:1)
一个非常难看的解决方案,需要沉重的造型:
<Menu>
<MenuItem Header="Tabs" >
<ListView ItemsSource="{Binding ElementName=MyTabControl, Path=Items}"/>
<Separator></Separator>
<MenuItem Header="SubItem 1"/>
<MenuItem Header="SubItem 2"/>
<MenuItem Header="SubItem 3"/>
</MenuItem>
</Menu>