WPF后台动态生成右键菜单

 #region 循环生成右键菜单
        private ContextMenu ContextMenus(Dictionary<string, RoutedEventHandler> list)
        {
            ContextMenu cm = new ContextMenu();
            Style style = (Style)this.FindResource("ContextMenu"); //定义前台显示模板
            cm.Style = style;
                foreach (var dc in list)
                {
                    MenuItem menu = new MenuItem();
                    menu.Style = (Style)this.FindResource("JjxyMenuItem");
                    menu.Header = dc.Key;
                    menu.Click += dc.Value;
                    cm.Items.Add(menu);
                }

            return cm;
        }
        #endregion

需要右键菜单的地方使用:

Dictionary<string, RoutedEventHandler> dist = new Dictionary<string, RoutedEventHandler>();
            //添加右键菜单项,包括名称和事件
            dist.Add("添加", add_Click);
            dist.Add("修改", edit_Click);
            dist.Add("删除", del_Click);
            dist.Add("导出", putout_Click);
            dgrid.ContextMenu = ContextMenus(dist);

添加即可,dgrid为DataGrid实例对象,使用字典,string为菜单名,RoutedEventHandler为菜单事件。

时间: 2024-12-19 05:54:30

WPF后台动态生成右键菜单的相关文章

用C#从数据库动态生成AdminLTE菜单的一种方法

用C#从数据库动态生成AdminLTE菜单的一种方法 当前的应用设计风格趋于Flat扁平化,很多基于BootStrap实现了很多UI非常漂亮的管理界面(Bootstrap admin template). 此核心文件开源在Github:https://github.com/JackWangCUMT/AdminLTE-Menu-Generate.首先看一下主界面: 查看左边导航的菜单html结构(下面代码有错误,HTML自定义属性直接用空格进行分割,而不是,号进行分割,不然jquery获取定义属性

WPF Datagrid 动态生成列 并绑定数据

原文:WPF Datagrid 动态生成列 并绑定数据 说的是这里 因为列头是动态加载的 (后台for循环 一会能看到代码) 数据来源于左侧列 左侧列数据源 当然num1 属于临时的dome使用  可以用ObservableCollection集合代表 动态创建属性 WPF 动态生成对象属性 (dynamic) ObservableCollection<NameList> listName = new ObservableCollection<NameList>(); privat

动态生成多级菜单

MVC5+EF6 入门完整教程13 -- 动态生成多级菜单 稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据model动态产生. 文章提纲 概述要点 && 理论基础 详细步骤 一.分析多级目录的html结构 二.根据html结构构建data model 三.根据data model动态生成树形结构 四.解析树形结构成html 总结 概述要点 &am

后台动态生成静态select标签的option项

以下为代码示例: <select id="Category_<%#Eval("BTUserID") %>" name="Category_<%#Eval("BTUserID") %>" disabled on onchange=setHourlyCost("<%#Eval("BTUserID") %>") style="width:20

根据权限动态生成二级菜单

数据库models设计: from django.db import models """ 一级菜单 """ class Menu(models.Model): title = models.CharField(max_length=32, unique=True) icon = models.CharField(max_length=32, verbose_name="图标", null=True, blank=True)

WPF DataGrid动态生成列的单元格背景色绑定

原文:WPF DataGrid动态生成列的单元格背景色绑定 <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Column.DisplayIndex}" Value="1"> <Setter Property="Background" Value="{Binding RelativeSource={RelativeSour

动态生成二级菜单

现在越来越多的用到二级甚至多级菜单,前台菜单的显示,手动指定也越来越不能满足要求,所以,动态生成菜单是必须的 思路 + 示例代码(以二级菜单为例) 先取出一级菜单内容值,接下来遍历一级菜单,将其id当做本次检索的parentid,将与之对应的二级菜单值获取到, 并加入到当前数组中(后台) 二层循环,当获取一个值时,检查其对于的二级菜单项是否有数据,有的话,则输出来,没有则跳过(前台) 以PHP后台为例 $res = mysql_query('*** where parentid = 0');  

wpf中的默认右键菜单中的复制、粘贴、剪贴等没有本地化的解决方案

?? 现象: wpf开发中经常会遇到自己的界面已经本地化了, 但是系统默认的一些文字没有本地化, 比如:TextBox的右键菜单中Cut,Paste,Copy没有本地. 原因:机器装中.Net framework对应的Language pack没有装. 解决方法: 比如.net framework 4.0 的language pack的下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=23067 然后下载相应的语音包,系统

MVC5+EF6 入门完整教程13 -- 动态生成多级菜单

稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据model动态产生. 文章提纲 概述要点 && 理论基础 详细步骤 一.分析多级目录的html结构 二.根据html结构构建data model 三.根据data model动态生成树形结构 四.解析树形结构成html 总结 概述要点 && 理论基础 要实现动态菜单,只要解决两个问题: