C# WPF DataGrid 分组(Group)
来源:互联网 发布:php干什么用的 编辑:程序博客网 时间:2024/05/29 16:08
效果如图,每个列的名字可以自定义。我随便用了”File”和”Attachment Name”。
在Window的Resources里面设置Style, GroupHeaderStyle:
<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type GroupItem}"> <Expander IsExpanded="True"> <Expander.Header> <TextBlock Text="{Binding Path=Name}"/> </Expander.Header> <ItemsPresenter /> </Expander> </ControlTemplate> </Setter.Value> </Setter> </Style>
把这个Style应用到DataGrid上面:
<DataGrid.GroupStyle> <GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}"> <GroupStyle.Panel> <ItemsPanelTemplate> <DataGridRowsPresenter/> </ItemsPanelTemplate> </GroupStyle.Panel> </GroupStyle> </DataGrid.GroupStyle>
整体xaml文件:
<Window x:Class="DataGridGroupDeamon.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type GroupItem}"> <Expander IsExpanded="True"> <Expander.Header> <TextBlock Text="{Binding Path=Name}"/> </Expander.Header> <ItemsPresenter /> </Expander> </ControlTemplate> </Setter.Value> </Setter> </Style> </Window.Resources> <Grid> <DataGrid x:Name="dataGrid1" AutoGenerateColumns="False" Margin="10"> <DataGrid.GroupStyle> <GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}"> <GroupStyle.Panel> <ItemsPanelTemplate> <DataGridRowsPresenter/> </ItemsPanelTemplate> </GroupStyle.Panel> </GroupStyle> </DataGrid.GroupStyle> <DataGrid.Columns> <DataGridTextColumn Header="File" Binding="{Binding Name}"/> <DataGridTextColumn Header="Attachment Name" Binding="{Binding Sex}"/> </DataGrid.Columns> </DataGrid> </Grid></Window>
数据准备文件:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using System.Collections.ObjectModel;using System.ComponentModel;namespace DataGridGroupDeamon{ /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { ObservableCollection<Model> data = new ObservableCollection<Model>(); public MainWindow() { InitializeComponent(); dataGrid1.ItemsSource = data; for (int i = 0; i < 10; i++) { Model m = CreateModel("张" + i, i / 2 + "年级", (i % 2 == 0 ? "女" : "男")); data.Add(m); } ICollectionView vw = CollectionViewSource.GetDefaultView(data); vw.GroupDescriptions.Add(new PropertyGroupDescription("Category")); } private Model CreateModel(string name, string cate, string sex) { Model model = new Model(); model.Name = name; model.Category = cate; model.Sex = sex; return model; } } public class Model { public string Name { get; set; } public string Category { get; set; } public string Sex { get; set; } }}
0 0
- C# WPF DataGrid 分组(Group)
- wpf Datagrid 实现聚合分组
- 正则表达式 GROUP 分组 C#
- C# WPF中DataGrid的数据绑定(Binding)
- C# EXCEL 分组 Range.Rows.Group()
- SQL 分组(group by)
- C# WPF DataGrid控件实现三级联动
- dataGrid分组
- C#之LINQ基础 使用group将数据分组
- wpf datagrid
- WPF DataGrid
- lucene的分组(group by)
- GCD使用(五)分组操作(group)
- mssql分组 ( ROLLUP /CUBE/GROUP BY /)
- leetcode Anagrams Group(回文构词 分组)
- 数据网格分组视图(DataGrid GroupView)
- C# WPF DataGrid控件同行编辑的实时更新问题
- 关于C# wpf DataGrid单元格双击设置单元格内容
- 新一代用户体验式测试和可定制化 WiFi/BT测试仪表-CWT
- 2017.2.15还是PAT乙级15分题
- 全球自动化市场复苏 2017制造业发展七大趋势尽现
- hql 语句使用order by
- clone()和copyTo()的区别
- C# WPF DataGrid 分组(Group)
- 51nod 1379 索函数
- 温故知新-数据类型
- jdbc连接mysql数据库
- hive的udaf相关函数
- 【canvas系列】用canvas实现一个colorpicker(类似PS的颜色选择器)
- oj2465: 1-n之间能够被m整除的数的和
- Spring-Cloud 学习之旅 --- 快速开始(二)
- removeFromParentViewController