gpt4 book ai didi

c# - 具有 ContextMenu 单击事件的 WPF ListBox 项目

转载 作者:行者123 更新时间:2023-11-30 20:45:22 25 4
gpt4 key购买 nike

我正在尝试处理 ListBoxItem 的上下文菜单上的单击事件。XAML 代码是:

<ListBox x:Name="LB_TranslationResult" HorizontalAlignment="Left" Height="128" Margin="254,71,0,0" VerticalAlignment="Top" Width="191">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Delete" Click="DeleteItem" />
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>

DeleteItem 事件如下所示:

private void DeleteItem(object sender, RoutedEventArgs e)
{
MessageBox.Show("Test");
}

奇怪,但是这个事件不起作用。上下文菜单出现,但当我点击它的项目时没有任何反应。

请问,这段代码有什么问题吗?

最佳答案

Click 事件的事件处理程序包装到样式中并使用 EventSetter用于调用事件处理程序背后的代码:

<ListBox x:Name="LB_TranslationResult" HorizontalAlignment="Left" Height="128" Margin="254,71,0,0" VerticalAlignment="Top" Width="191">
<ListBox.Resources>
<Style x:Key="DeleteItemContextMenuStyle" TargetType="MenuItem">
<EventSetter Event="Click" Handler="DeleteItem"/>
</Style>
</ListBox.Resources>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Delete" Style="{StaticResource DeleteItemContextMenuStyle}"/>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>

关于c# - 具有 ContextMenu 单击事件的 WPF ListBox 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28182489/

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