当前位置: 首页 > news >正文

汉堡只做网站微信官方网站建设

汉堡只做网站,微信官方网站建设,外贸人才网,跨境电商营销策划方案一、目的:开发过程中,有些模块的右键ContextMenu菜单是需要动态显示的,既是根据不同条件显示不同的菜单,很多是通过代码去生成ContextMenu的MenuItem,本文介绍通过绑定的方式去加载ContextMenu,Menu菜单栏的…

一、目的:开发过程中,有些模块的右键ContextMenu菜单是需要动态显示的,既是根据不同条件显示不同的菜单,很多是通过代码去生成ContextMenu的MenuItem,本文介绍通过绑定的方式去加载ContextMenu,Menu菜单栏的同样适用,原理同TreeView的绑定


二、效果

三、环境
VS2022

四、实现

实现代码

            <TextBlock Text="右键弹出菜单"><TextBlock.ContextMenu><ContextMenu ItemsSource="{local:ClassTypeTreeDataProvider IsRecursion=True, Type={x:Type FrameworkElement}}"><ContextMenu.ItemContainerStyle><Style TargetType="MenuItem"><Setter Property="Command" Value="{local:ShowDialogCommand}"/><Setter Property="CommandParameter" Value="{Binding Model}"/></Style></ContextMenu.ItemContainerStyle><ContextMenu.ItemTemplate><HierarchicalDataTemplate ItemsSource="{Binding Nodes}"><DockPanel><CheckBox VerticalAlignment="Center" IsChecked="{Binding IsChecked, Mode=TwoWay}" /><TextBlock  VerticalAlignment="Center" Text="{Binding Model.Name}" /></DockPanel></HierarchicalDataTemplate></ContextMenu.ItemTemplate></ContextMenu></TextBlock.ContextMenu></TextBlock>

 原理跟TreeView一样,应用ItemsSource绑定数据源,应用HierarchicalDataTemplate模板作为ItemTemplate来绑定,树结构的绑定参考文档

示例:WPF中TreeView自定义TreeNode泛型绑定对象-CSDN博客

示例:WPF中TreeView自定义TreeNode泛型绑定对象来实现级联勾选-CSDN博客

Menu的绑定原理一样

实现代码

            <Menu ItemsSource="{local:ClassTypeTreeDataProvider IsRecursion=True, Type={x:Type FrameworkElement}}"><Menu.ItemContainerStyle><Style TargetType="MenuItem"><Setter Property="Command" Value="{local:ShowDialogCommand}"/><Setter Property="CommandParameter" Value="{Binding Model}"/></Style></Menu.ItemContainerStyle><Menu.ItemTemplate><HierarchicalDataTemplate ItemsSource="{Binding Nodes}"><TextBlock  VerticalAlignment="Center" Text="{Binding Model.Name}" /></HierarchicalDataTemplate></Menu.ItemTemplate></Menu>

当切换ItemsSource既可以实现动态切换ContextMenu 

五、需要了解的知识点

ContextMenu 类 (System.Windows.Controls) | Microsoft Learn

Menu 类 (System.Windows.Controls) | Microsoft Learn

HierarchicalDataTemplate 类 (System.Windows) | Microsoft Learn

MenuItem 类 (System.Windows.Controls) | Microsoft Learn

ICommand 接口 (System.Windows.Input) | Microsoft Learn

六、源码地址

GitHub - HeBianGu/WPF-ControlDemo: 示例

GitHub - HeBianGu/WPF-ControlBase: Wpf封装的自定义控件资源库

GitHub - HeBianGu/WPF-Control: WPF轻量控件和皮肤库

七、了解更多

System.Windows.Controls 命名空间 | Microsoft Learn

https://github.com/HeBianGu

HeBianGu的个人空间-HeBianGu个人主页-哔哩哔哩视频

http://www.15wanjia.com/news/196309.html

相关文章:

  • 知名品牌网站有哪些任何用c语言做网站
  • 建设网站浩森宇特找一个网站做搜索引擎分析
  • 免费软件制作网站短链接生成
  • 网站抠图怎么做的零售商城
  • 网站做投票系统正在建设中的网站可算违规
  • 电子商务做网站骗钱怎么办国内网页设计师个人网站
  • vs网站开发 怎么运行注册网站发财的富豪
  • 社区app网站模板下载dede模板打网站显示栏logo
  • 网站设计素材网站wordpress用什么框架开发
  • php做网站搜索框合肥网站推广外包公司
  • 建立企业网站多少钱新建的wordpress没有注册
  • 自己公司怎样弄个网站有动效网站
  • 机关单位网站安全建设wordpress 信息网站
  • 百度如何验证网站百度资源共享
  • 网站描述案例遨游建站
  • 做视频网站怎么挣钱吗网页策划书
  • 西安知名网站开发的公司类似 wordpress的软件
  • php网站后台登陆地址网站公司排行榜前十名
  • 网站顶部悬浮广告代码手机ftp传网站文件在哪里
  • 神农架网站建设公司域名与空间购买后怎么做网站
  • 微生成网站多少钱要交个人所得税
  • 山东美建站网站与公众号的区别
  • 创意产品设计图厦门seo优化推广
  • 网站数据分析指标帝国cms建站实例教程
  • 广州建网站要多少钱php网站开发账号密码
  • 全国建设工程执业资格注册中心网站wordpress局域网中看
  • 人社网站行风建设的建设和意见成品app
  • 精品网站建设费用 要上磐石网络wordpress批量修改图片src
  • 一个人建网站赚钱个人如何做百度推广
  • 论坛是做网站还是app好山西网站建设营销qq