我有以下的XAML代码:
<ContextMenu ItemsSource="{Binding TestItems}">
<ContextMenu.ItemTemplate>
<DataTemplate DataType="models:TestItemModel">
<MenuItem IsChecked="{Binding IsSelected}" Header="{Binding Header}" />
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
TestItemModel类只包含一个IsSelected布尔属性和一个Header字符串属性。
TestItems是一个TestItemModels列表。
数据绑定到上下文菜单,但在UI中反映为一个MenuItem内部的MenuItem(具有额外的边距,使菜单非常大)。我可以通过将DataTemplate内部的MenuItem更改为TextBox来解决这个问题,但这样就无法再绑定IsSelected了(我需要用于可视化属性)。
我有几个关于此事的问题:
- 为什么会有一个MenuItem内部有另一个MenuItem?对我来说这没有意义,因为它不是绑定到菜单项列表而是绑定到TestItemModels列表。
- 我该如何解决这个问题?