C#对WPF数据绑定的菜单插入分隔Seperator
WPF代码展示
<Window.Resources> <local:Source x:Key="src"/> </Window.Resources> <StackPanel> <Menu> <MenuItem Header="Animals" ItemsSource="{Binding Source={StaticResource src}}" /> </Menu> </StackPanel>
数据绑定代码
public class Source : ObservableCollection<object> { public Source() { //Spiders Add("Golden Silk Spider"); Add("Black Widow Spider"); //BigCats Add("Jaguar"); Add("African Wildcat"); Add("Cheetah"); //Amphibians Add("California Newt"); Add("Tomato Frog"); Add("Green Tree Frog"); } }
这种方式简单易用,但有个问题,缺乏灵活性:比如说如果我们要根据不同的类别分组,通过seperator隔离,生成如下图所示的菜单,这时该如何做呢?
我试过几种方法,如设置ItemStyleSelecter,DataTemplate等,效果都不是很好,最后找到一种很简单的方法:在数据源中直接插入Seperator即可。
public class Source : ObservableCollection<object> { public Source() { Add("Golden Silk Spider"); Add("Black Widow Spider"); Add(new Separator()); Add("Jaguar"); Add("African Wildcat"); Add("Cheetah"); Add(new Separator()); Add("California Newt"); Add("Tomato Frog"); Add("Green Tree Frog"); } }
这种方式简单易用,并且能保持和系统主题样式一致,是目前我知道的最好的方法了。ToobBar的Seperator也可以用这种方式生成。
到此这篇关于WPF菜单插入Seperator的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
WPF PasswordBox进行数据绑定方法
目录 问题描述 解决办法 本文介绍下PasswordBox进行数据绑定的方法,本文参考链接. 本文完整示例程序见GitHub. 问题描述 PasswordBox的Password属性不是依赖属性,因此无法进行数据绑定. 解决办法 该问题的解决办法有多种,本文介绍如何通过添加附加属性解决该问题. 附加属性是说一个属性本不属于某个对象,但由于某种需求附加到该对象上,通过附加属性可以实现将属性与宿主解耦的目的.附加属性本质上就是依赖属性,只是它们在属性包装器和注册时有区别.注册附加属性使用Regist
-
WPF数据绑定Binding的用法
一.简介 WPF的核心理念是变传统的UI驱动数据变成数据驱动UI,支撑这个理念的基础就是本章讲的Data Binding和与之相关的数据校验和数据转换.在使用Binding的时候,最重要的就是设置它的源和路径.Bingding的源:有三个属性用来设置源:ElementName(string).Source(Object) 和 RelativeSource(RelativeSource).注:这三个只能指定一个,否则异常.ElementName:源为一个元素(Element),这里用的是此元素中设
-
C# WPF数据绑定模板化操作的完整步骤
目录 前言: 具体实例代码如下: 总结 前言: WPF数据绑定对于WPF应用程序来说尤为重要,本文将讲述使用MVVM模式进行数据绑定的四步走用法: 具体实例代码如下: public class NotifyPropertyObject : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void RaisePropertyChanged(string propert
-
WPF使用代码创建数据模板DataTemplate
起因 我们都知道, 在XAML界面当中编写DataTemplate很简单, 但是有时候我们需要在代码当中去设置DataTemplate. 该怎么办? 比如, 实际需求是DataGrid当中需要创建100个DataTemplate列, 很明显,这些列不太方便在XAML中编写. 这个时候,我们就需要在代码当中动态生成模板列. 答案 如下面所示,我创建了一个DataGridTemplateColumn,其中包含了一个StackPanel里面放了两个Button按钮. <DataGridTemplate
-
C# WPF如何反射加载Geometry几何图形数据图标
相信大家在阅读WPF相关GitHub开源项目源码时都会看见一串串这种数据 这种Geometry数据就是几何图形数据 为什么要用Geometry数据做图标? 有一种做法是使用ttf字体文件代替,不过使用ttf字体文件会出现下面几个缺点: 1.团队协作不便于管理 2.需要依赖特定平台 3.无法灵活使用 而使用Geometry的话,我们可以将这些几何图形数据存入资源字典ResourceDictionary 通过反射进行灵活使用,团队开发可共同维护 怎么获取Geometry数据? 我们进入https:/
-
WPF实现数据绑定
简单而言, 数据绑定是一种关系, 这种关系告诉WPF 从一个源目标对象中提取一些信息, 并且使用该信息设置为目标对象的属性.目标属性总是依赖项属性, 并且通常位于WPF元素中. 然而, 源对象可以是任何内容, 可是是随机生成的一个对象.也可以是数据库的数据对象,或者手动创建的对象. 简单绑定 为了能够简单理解这种绑定关系, 接下来简单示例, 用一个数值滚动条, 动态修改一个文字的字体大小, 通过绑定的方式. <StackPanel> <Slider Name="s1"
-
C#中WPF ListView绑定数据的实例详解
C#中WPF ListView绑定数据的实例详解 WPF中ListView用来显示数据十分方便, 我们可以将它分成几个列,每一个列用来显示一条数据,但是又是在一方之中. 那么怎样实现这样的效果的呢,这就要用绑定了. 我们先来看一看他的xmal代码 <ListView Name="receiveList" Grid.Row="0"> <ListView.View> <GridView> <GridView.Columns>
-
WPF中的数据模板用法介绍
数据模板常用在3种类型的控件, 下图形式: 1.Grid这种列表表格中修改Cell的数据格式, CellTemplate可以修改单元格的展示数据的方式. 2.针对列表类型的控件, 例如树形控件,下拉列表,列表控件, 可以修改其中的ItemTemplate. 3.修改ContentTemplate, 例UserControl控件的数据展现形式. CellTemplate 模板 下面用一个例子, 来演示CellTemplate使用.例子实现一个DataGrid 展示一个普通的数据标, 同时新增一列C
-
C#对WPF数据绑定的菜单插入分隔Seperator
WPF代码展示 <Window.Resources> <local:Source x:Key="src"/> </Window.Resources> <StackPanel> <Menu> <MenuItem Header="Animals" ItemsSource="{Binding Source={StaticResource src}}" /> </Menu>
-
WPF数据绑定中的RelativeSource属性
一.简介 一个在Binding中比较重要的知识点——RelativeSource. 使用RelativeSource对象指向源对象.用这个可以在当前元素的基础上查找其他对象用于绑定到源对象.在实际使用Binding的过程中大部分时间Binding都放在了数据模板和控件模板中,(数据模板是控件模板用于定义控件的UI). 在模板中编写Binding时有时候无法直接拿到我们需要绑定的数据对象,我们不能确定我们需要的Source对象叫什么,但是我们直到了我们需要使用的对象在UI布局上的相对关系.比如控件
-
WPF实现抽屉菜单效果的示例代码
WPF 实现抽屉菜单 框架使用大于等于.NET40: Visual Studio 2022; 项目使用 MIT 开源许可协议: 更多效果可以通过GitHub[1]|码云[2]下载代码; 由于在WPF中没有现成的类似UWP的抽屉菜单,所以我们自己实现一个. 1) DrawerMenu.cs 代码如下. using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using System
-
WPF的数据绑定详细介绍
一.WPF数据绑定的概要 数据绑定:是应用程序 UI 与业务逻辑之间建立连接的过程. 如果绑定正确设置并且数据提供正确通知,则当数据的值发生更改时,绑定到数据的视觉元素会自动反映更改. 数据绑定可能还意味着如果视觉元素中数据的外部表现形式发生更改,则基础数据可以自动更新以反映更改. 例如:如果用户编辑 TextBox 元素中的值,则基础数据值会自动更新以反映该更改. 1. 数据绑定涉及到两个方面: 一个是绑定源,一个是绑定目标.绑定源即控件绑定所使用的源数据,绑定目标即数据显示的控件. 2. 对
-
WPF基础教程之元素绑定详解
前言 简单的说,数据绑定是一种关系,该关系告诉WPF从一个源对象提取一些信息,并使用这些信息设置目标对象的属性.目标属性总是以来属性,并且通常位于WPF元素中,毕竟,WPF数据绑定的最终目的是在用户界面中显示一些信息.然而,源对象可以是任何内容,从另一个WPF元素到ADO.NET数据对象(如DataTable和DataRow对象)或自己创建的纯数据对象. 下面话不多说了,来一起看看详细的介绍吧 元素绑定 数据绑定最简单的形式是源对象是WPF元素而且源属性是依赖项属性.依赖项属性具有内置的更改通知
-
JS实现左侧菜单工具栏
本文实例为大家分享了JS实现左侧菜单工具栏的具体代码,供大家参考,具体内容如下 摘要 该js脚本可帮助你快速实现左侧菜单工具栏.通过js封装成一个方法类,直接new该对象即可快速生成左侧菜单工具栏. 一.效果展示 二.menu.js文件 (1)WenMenuNode节点 let WenMenuNode = function ({ text, wenMenu,
-
Win98注册表应用50例—注册表使用全攻略之十
Win98注册表应用300例-注册表使用全攻略之十 1.自动刷新 每次在窗口添加一个文件夹或删除一个对象后,须要按键对窗口 进行重新刷新,很麻烦.通过修改注册表可以达到自动刷新的目的. 点击HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTRO LSET\CONTROL\UPDATE,修改 "UPDATEMODE"值,由"1"改为"0". 2.修改系统版权信息 点击HKEY_LOCAL_MACHINE\SOFTWARE\M
-
易语言基础教程之菜单栏和工具栏
目前的易语言版本是10个菜单栏,每个菜单栏有不同的功效,而工具栏就是从菜单栏里找出来的一个方便按钮,下面我就给大家详细解释一下每个菜单栏 菜单栏详解 "程序"菜单 相当于其他应用程序的"文件"菜单,这个菜单主要负责文件操作,例如"新建"."打开"."保存"."另存为"等等,还包括"程序配置"."易模块管理"等.值得初学者注意的是,在易语言的&quo
随机推荐
- ASP程序中常用的脚本语言
- 浅析document.ready和window.onload的区别讲解
- 关于try 和 throw 简单使用示例
- Java实现数据库连接池的方法
- C# 接口的隐式与显示实现及适应场景
- discuz authcode 经典php加密解密函数解析
- 支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
- JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
- Android使用Fragment打造万能页面切换框架
- node.js爬虫爬取拉勾网职位信息
- 高效C#编码优化原则
- 详解spring cloud中使用Ribbon实现客户端的软负载均衡
- IntelliJ IDEA 使用经验总结(推荐)
- Java高级之虚拟机加载机制的实例讲解
- .net core项目中常用的几款类库详解(值得收藏)
- Angular PWA使用的Demo示例
- Java 实现倒计时功能(由秒计算天、小时、分钟、秒)
- 浅谈DataFrame和SparkSql取值误区
- Angular6中使用Swiper的方法示例
- python中将两组数据放在一起按照某一固定顺序shuffle的实例