You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF如何为绑定字符串列表的ContextMenu每个菜单项添加点击事件

WPF ContextMenu绑定字符串列表并添加点击事件的实现方案

你只需要在原有代码基础上补充两个部分的内容即可完成需求:

  1. 修改XAML中的ContextMenu定义,为自动生成的MenuItem添加点击事件绑定:
<Grid.ContextMenu>
    <ContextMenu Name="context">
        <ContextMenu.ItemContainerStyle>
            <Style TargetType="MenuItem">
                <!-- 给所有自动生成的菜单项绑定同一个点击事件 -->
                <EventSetter Event="Click" Handler="OnMenuItemClicked"/>
            </Style>
        </ContextMenu.ItemContainerStyle>
    </ContextMenu>
</Grid.ContextMenu>
  1. 在后台CS代码中添加对应的点击事件处理方法:
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        List<string> list = new List<string>()
        {
            "item1", "item2", "item3"
        };
        context.ItemsSource = list;
    }

    // 新增菜单项点击处理逻辑
    private void OnMenuItemClicked(object sender, RoutedEventArgs e)
    {
        if (sender is MenuItem clickedItem)
        {
            // 每个MenuItem的DataContext对应绑定的字符串列表中的单个元素
            string selectedText = clickedItem.DataContext as string;
            MessageBox.Show(selectedText, "点击提示");
        }
    }
}

补充说明

如果你的项目采用MVVM架构,也可以通过绑定MenuItem的Command和CommandParameter属性实现相同逻辑,无需编写后台事件代码。

内容的提问来源于stack exchange,提问作者sYsTeM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 04:45:08