【发布时间】:2019-12-03 22:39:58
【问题描述】:
我正在尝试将上下文菜单添加到 ListBoxItem。我正在使用 ListBox.ItemTemplate 和 DataTemplate(带有网格)来定义项目的布局,并且 ListBoxItem 是样式化的。
在搜索这应该是要走的路:
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Rename" Click="Rename_Click" />
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
但这会引发XamlParseException/InvalidCastException 的说法
无法转换类型的对象
System.Windows.Controls.MenuItem 到类型
System.Windows.Controls.Grid
我尝试将上下文菜单添加到ItemTemplate 中的网格中,但它仅在您单击网格中的一个元素时才有效(有一些空白区域)(或者如果我向网格,但会覆盖/“覆盖”项目本身的样式,用于悬停和选定)
搜索时找不到类似的问题,也想不通Exception的逻辑..
【问题讨论】:
-
能否请您发布 ItemTemplate 的代码?
标签: c# wpf xaml contextmenu