博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF里ItemsControl的分组实现
阅读量:6470 次
发布时间:2019-06-23

本文共 2586 字,大约阅读时间需要 8 分钟。

原文:

  我们在用到ItemsControl时,有时会用到分组,如ListBox,ListView,DataGrid。WPF的ItemsControl可以实现分组,是依托于GroupStyle,以ListBox为例,他的分组效果图为:

  以下为前台:

1 
2
3
4
5
7
9
11
12
13
14
15
16
17
40
41
42
43

  从16行可以看出,GroupStyle定义的是控件内部样式,所以有人尝试在这里绑实体数据属性的话肯定是失败的,注意25行只能是Name,不管分组的属性叫什么名,这都只能是Name,我写了个Button在里面,如果想知道为什么只能是Name,写个Click处理,把Button的DataContext打印出来就什么都知道了。如果想在这里做更多的处理,比如进行一些负责的运算,可以写加转换器。

  这里只是弄了一个原始的Expander装载分组控件,需要美化可以另写样式。

  以下是后台:

1 public class ModelFile 2 { 3     public string FileName { get; set; } 4     public string AuthorName { get; set; } 5     public string UpTime { get; set; } 6 } 7  8 public partial class MainWindow : Window 9 {10     public ObservableCollection
CollectionModelFile = new ObservableCollection
();11 12 public MainWindow()13 {14 InitializeComponent();15 16 CollectionModelFile.Add(new ModelFile() { FileName = "WPF进化史", AuthorName = "王鹏", UpTime = "2014-10-10" });17 CollectionModelFile.Add(new ModelFile() { FileName = "WPF概论", AuthorName = "大飞", UpTime = "2014-10-10" });18 CollectionModelFile.Add(new ModelFile() { FileName = "WPF之美", AuthorName = "小虫", UpTime = "2014-10-11" });19 CollectionModelFile.Add(new ModelFile() { FileName = "WPF之道", AuthorName = "青草", UpTime = "2014-11-11" });20 CollectionModelFile.Add(new ModelFile() { FileName = "WPF之禅", AuthorName = "得瑟鬼", UpTime = "2014-11-11" });21 CollectionModelFile.Add(new ModelFile() { FileName = "WPF入门", AuthorName = "今晚吃什么", UpTime = "2014-11-11" });22 CollectionModelFile.Add(new ModelFile() { FileName = "WPF神技", AuthorName = "无间道王二", UpTime = "2014-12-12" });23 CollectionModelFile.Add(new ModelFile() { FileName = "WPF不为人知之密", AuthorName = "星期八", UpTime = "2014-12-12" });24 CollectionModelFile.Add(new ModelFile() { FileName = "WPF之革命", AuthorName = "两把刀", UpTime = "2014-12-12" });25 26 lbMain.ItemsSource = CollectionModelFile;27 28 ICollectionView cv = CollectionViewSource.GetDefaultView(lbMain.ItemsSource);29 cv.GroupDescriptions.Add(new PropertyGroupDescription("UpTime"));30 }31 }

  重点是28、29行,有了这两句,ListBox就能准确得分组显示了,其他ItemsControl的分组类同。

  至此一个简单的ListBox分组显示就完成了,Demo已放群里,需要的可以下载来看。

转载地址:http://ryjko.baihongyu.com/

你可能感兴趣的文章
haproxy 重启提示:cannot bind socket(无法绑定socket)
查看>>
与RMAN有关的初始化参数和动态性能视图
查看>>
2017下半年计划
查看>>
nginx+keepalived做高可用
查看>>
安装盘启动系统,挂载硬盘,然后进入shell模式修改配置文件
查看>>
安装 Active Directory 架构管理单元
查看>>
Linux系统巡检常用命令
查看>>
C++ 中字符串与数值的相互转换
查看>>
邮件江湖群狼环伺 U-Mail邮件系统防狼有术
查看>>
全球五大顶级域名统计:5月第三周新增20.3万个
查看>>
MFS--分布式文件系统
查看>>
我的友情链接
查看>>
nagios下 监控内存的插件
查看>>
linux磁盘分区
查看>>
传说FreeBSD等比Linux更稳定,更“健壮”
查看>>
cmake安装MySQL数据库实例
查看>>
朝韩合并的几个好处
查看>>
<05>linux的文本基础操作
查看>>
对Pthread线程进行简单的类封装
查看>>
用户登录程序实现--基于MYSQL (自己导入jar包)
查看>>