C#:Listbox项目的列表框上下文菜单(WPF)

前端之家收集整理的这篇文章主要介绍了C#:Listbox项目的列表框上下文菜单(WPF)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在 WPF中为我的ListBox提供一个上下文菜单.
我使用整个列表框的上下文菜单来完成它,但即使您没有单击某个项目,也可以通过richt-click来获取上下文菜单.

我在谷歌找到了一些东西,但这没有用.

我试过这样的事情:

<ListBox Margin="5" ItemsSource="{Binding}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Name}">
                <TextBlock.ContextMenu>
                    <ContextMenu>
                        <MenuItem Header="{Binding Name}" Click="MenuItemName_Click"/>
                        <MenuItem Header="{Binding Capital}"  Click="MenuItemCapital_Click"/>
                        <MenuItem Header="{Binding Population}" Click="MenuItemPopulation_Click"/>
                    </ContextMenu>
                </TextBlock.ContextMenu>
            </TextBlock>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

我尝试使用像示例中的文本块,与其他教程中的其他元素一样,我厌倦了没有和许多其他东西 – 但没有任何效果.我的列表框项目没有上下文菜单:(

后来我尝试过这样的事:

<ListBox.ItemTemplate>
     <DataTemplate>
         <ListBoxItem>
             <ListBoxItem.ContextMenu>
                 <ContextMenu>
                     <MenuItem/>
                 </ContextMenu>
             </ListBoxItem.ContextMenu>
         </ListBoxItem>
     </DataTemplate>
 </ListBox.ItemTemplate>

但它也没有用.

有人可以给我一个提示/工作示例:)?

谢谢

解决方法

我会在ListBoxItem的样式中设置ContextMenu,而不是在DataTemplate中:
<ListBox Name="simpleListBox"
         ItemsSource="{Binding SimpleList}"
         DisplayMemberPath="Name">
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="ContextMenu">
                <Setter.Value>
                    <ContextMenu>
                        ...
                    </ContextMenu>
                </Setter.Value>
            </Setter>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>

猜你在找的C#相关文章