C#对WPF数据绑定的菜单插入Seperator分隔
作者:天方 发布时间:2022-04-29 17:09:28
标签: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>
C#对WPF数据绑定
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也可以用这种方式生成。
来源:https://www.cnblogs.com/TianFang/archive/2009/07/06/1517390.html
0
投稿
猜你喜欢
- Java设计模式访问者模式模式概念访问者模式表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的
- 一、 进程 简单来说,进程是对资源的抽象,是资源的容器,
- 1.导包(1)c3p0 数据库连接池c3p0配置文件加入到src目录下(2)dbutils:对jdbc操作进行了封装it-cast工具包 包
- 我们来简单实现一个cookie。一、简单介绍Cookie 是一些数据, 存储于你电脑上的文本文件中。当 web 服务器向浏览器发送 web
- 前言我们在学习Windows应用程序开发中,经常会用到消息对话框给用户或者管理员一些的消息提示,它们都是基于对MessageBox类的消息对
- Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全
- 前面一篇有说道如何在MyEclipse中搭建maven项目,这里将继续介绍如何在搭建好的基础maven项目中引入我们常用的javaweb框架
- 先来了解一下什么是XMLType类型。XMLType是Oracle从9i开始特有的数据类型,是一个继承了Blob的强大存在,可以用来存储xm
- 我们知道java程序是运行在JVM中的,而JVM就是构建在内存上的虚拟机,那么内存模型JMM是做什么用的呢?我们考虑一个简单的赋值问题:in
- 一、背景上一篇通过Java自带的JConsole来获取zookeeper状态。主要有几个不方便的地方,zk集群一般会部署3或者5台,在多个J
- @Valid:@Valid注解用于校验,所属包为:javax.validation.Valid。① 首先需要在实体类的相应字段上添加用于充当
- java 判断两个对象是否为同一个对象用“==”比较的是引用的地址,用equals比较的就是值。那我们new两个相同的对象什么属性都一样,为
- 一、概述;从字面上讲,就是停止这个世界,看到这个字眼,就觉得这是可怕的事情,那到底什么是stop-the-world?stop-the-wo
- 本文实例讲述了C#获取网页源代码的方法。分享给大家供大家参考。具体如下:public string GetPageHTML(string u
- 本文实例为大家分享了java实现简单发红包的具体代码,供大家参考,具体内容如下这个案例是普通红包,均分的,不是拼手气红包。package n
- LinkedListLinkedList是一种可以在任何位置进行高效地插入和删除操作的有序序列。它的最基本存储结构是一个节点:每个节点将存储
- Sharding-Proxy是一个分布式数据库中间件,定位为透明化的数据库代理端。作为开发人员可以完全把它当成数据库,而它具体的分片规则在S
- 一、为什么要控制当你在项目启动时需要提前做一个业务的初始化工作时,或者你正在开发某个中间件需要完成自动装配时。你会声明自己的Configur
- cookies的创建:在客户端创建一个username的cookies,其值为oneday,有效期为1天.方法1:Response.Cook
- 去年买了本数字图像处理算法,一直都没有看,前几个星期都一直忙着工作上的活,趁这阶段悠闲点,玩一玩图片处理,这玩意还是非常有意思的。以前我们在