哪个WPF控件允许在每个项目上列出项目和上下文菜单?到目前为止,我一直在使用ListBox,但似乎没有简单的方法向其项目添加上下文菜单。相反,我正在考虑将ListBox更改为另一个允许上下文菜单的控件。
我现在使用的唯一ListBox属性/方法是“SelectedIndex”和“SelectedItem”。只要建议的控制支持这个或有另一个替代,我应该没事。
答案 0 :(得分:4)
要向ContextMenu
添加ListBoxItem
,请使用ItemContainerStyle
<ListBox ItemsSource="{Binding ...}">
<ListBox.Resources>
<ContextMenu x:Key="listBoxItemContextMenu">
<MenuItem Header="{Binding YourProperty}" />
</ContextMenu>
</ListBox.Resources>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu"
Value="{StaticResource listBoxItemContextMenu}"/>
</Style>
</ListBox.ItemContainerStyle>
<!--...-->
</ListBox>
答案 1 :(得分:1)
您可以使用wpf中的DataGrid控件进行列表。您也可以像
一样添加contextMenu<DataGrid AutoGenerateColumns="False" Height="200" Width="200" >
<DataGrid.ContextMenu>
<ContextMenu >
<MenuItem Header="Menu Header" Click="MenuItem_Click" />
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
答案 2 :(得分:0)
此示例不使用您通常在真实应用中看到的任何绑定或DataTemplates,但希望它有所帮助
<ListBox>
<ListBox.Items>
<ListBoxItem Content="Item A">
<ListBoxItem.ContextMenu>
<ContextMenu>Delete A</ContextMenu>
</ListBoxItem.ContextMenu>
</ListBoxItem>
<ListBoxItem Content="Item B">
<ListBoxItem.ContextMenu>
<ContextMenu>Delete B</ContextMenu>
</ListBoxItem.ContextMenu>
</ListBoxItem>
<ListBoxItem Content="Item C">
<ListBoxItem.ContextMenu>
<ContextMenu>Delete A</ContextMenu>
</ListBoxItem.ContextMenu>
</ListBoxItem>
</ListBox.Items>
</ListBox>