gpt4 book ai didi

c# - WPF ListboxItem 和上下文菜单

转载 作者:太空狗 更新时间:2023-10-29 21:29:51 24 4
gpt4 key购买 nike

我有这样的代码:

<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical"
ContextMenuService.ShowOnDisabled="True">
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Command="Delete" Click="DeleteEvent">
</MenuItem>
</ContextMenu>
</StackPanel.ContextMenu>
<TextBlock Text="{Binding EventName}">
</TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>

不幸的是,它不起作用。我的上下文菜单被禁用(它正在显示但我无法单击它,因为它被禁用)。我读到这个问题与选择问题有关,但我没有找到任何解决方案。你有什么想法?

最佳答案

您正在尝试设置 Command 和 Click 事件。你应该设置一个或另一个。也许该操作被禁用的事实是因为您正在设置值为 CanExecute = false 的命令;

您可以尝试像这样为 ListBoxItem 设置 ItemContainerStyle,而不是编写 DataTemplate:

<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Delete" Click="DeleteEvent"/>
</ContextMenu>
</Setter.Value>
</Setter>
<Setter Property="Content" Value="{Binding Path=EventName}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>

这里我直接设置了ListBoxItem实例的ContextMenu,这样它就会在右边的控件上显示菜单。

关于c# - WPF ListboxItem 和上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7554184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com