左中右三栏布局网站建设,网站建设微金手指下拉15,外贸网站设计师,网页版聊天软件需求在使用WPF开发时#xff0c;使用DataGrid列表显示数据时#xff0c;有些字段可以进行分组显示#xff0c;用于更好的表达它们之间存在的某种关系#xff0c;因此就考虑到要对DataGrid的表头进行扩展#xff0c;可以显示多行表头#xff0c;让这些有关联的字段内容显示… 需求在使用WPF开发时使用DataGrid列表显示数据时有些字段可以进行分组显示用于更好的表达它们之间存在的某种关系因此就考虑到要对DataGrid的表头进行扩展可以显示多行表头让这些有关联的字段内容显示的更加明了简洁。image自定义样式这段自定义样式可以放在MainWindow.xaml文件中或者自己定义一个存放样式文件的xaml进行存放。这里在模版里面使用的第一个Grid是用于总的显示还有右侧边竖线分割线嵌入的Grid用于显示多表头的处理显示功能第一行为总的信息第二行为第一行和第三行的分割线第三行显示的省、市和县。Style x:KeyCityStyle TargetTypeDataGridColumnHeaderSetter PropertyTemplateSetter.ValueControlTemplateGrid x:NameRootGrid.ColumnDefinitionsColumnDefinition/ColumnDefinitionColumnDefinition WidthAuto/ColumnDefinition/Grid.ColumnDefinitionsGridGrid.Column0HorizontalAlignment{TemplateBinding HorizontalContentAlignment}VerticalAlignment{TemplateBinding VerticalContentAlignment}Grid.RowDefinitionsRowDefinition Height30/RowDefinitionRowDefinition HeightAuto/RowDefinitionRowDefinition Height30/RowDefinition/Grid.RowDefinitionsGrid.ColumnDefinitionsColumnDefinition Width100/ColumnDefinitionColumnDefinition WidthAuto/ColumnDefinitionColumnDefinition Width100/ColumnDefinitionColumnDefinition WidthAuto/ColumnDefinitionColumnDefinition Width100/ColumnDefinition/Grid.ColumnDefinitionsContentPresenterGrid.Row0Grid.Column0Grid.ColumnSpan5HorizontalAlignmentCenterVerticalAlignmentCenterContent户籍信息/ContentPresenterRectangleGrid.Row1Grid.Column0Grid.ColumnSpan5VerticalAlignmentStretch Height1FillBlackVisibilityVisible/RectangleContentPresenterGrid.Row2Grid.Column0HorizontalAlignmentCenterVerticalAlignmentCenterContent省/ContentPresenterRectangleGrid.Row2Grid.Column1Width1VerticalAlignmentStretchFill#cccVisibilityVisible/RectangleContentPresenterGrid.Row2Grid.Column2HorizontalAlignmentCenterVerticalAlignmentCenterContent市/ContentPresenterRectangleGrid.Row2Grid.Column3Width1VerticalAlignmentStretchFill#cccVisibilityVisible/RectangleContentPresenterGrid.Row2Grid.Column4HorizontalAlignmentCenterVerticalAlignmentCenterContent县/ContentPresenter/GridRectangleGrid.Column1Width1VerticalAlignmentStretchFill#cccVisibilityVisible/Rectangle/Grid/ControlTemplate/Setter.Value/Setter
/Style
窗体布局GridDataGridAutoGenerateColumnsFalseCanUserAddRowsFalseItemsSource{Binding UserInformations}DataGrid.ColumnsDataGridTextColumn Width100 Binding{Binding UserName}DataGridTextColumn.HeaderTemplateDataTemplateGrid HorizontalAlignmentStretch VerticalAlignmentCenterTextBlockMargin5,0,5,0HorizontalAlignmentCenterVerticalAlignmentCenterText姓名TextAlignmentCenterTextWrappingWrap/TextBlock/Grid/DataTemplate/DataGridTextColumn.HeaderTemplateDataGridTextColumn.ElementStyleStyleSetter PropertyTextBlock.TextAlignment ValueCenter/SetterSetter PropertyTextBlock.TextWrapping ValueWrap/SetterSetter PropertyTextBlock.HorizontalAlignment ValueCenter/SetterSetter PropertyTextBlock.VerticalAlignment ValueCenter/Setter/Style/DataGridTextColumn.ElementStyle/DataGridTextColumnDataGridTemplateColumn HeaderStyle{StaticResource CityStyle}DataGridTemplateColumn.CellTemplateDataTemplateStackPanel OrientationHorizontalTextBlockWidth100Margin0HorizontalAlignmentCenterVerticalAlignmentCenterText{Binding Province}TextAlignmentCenter/TextBlockRectangle Width1 FillBlack/RectangleTextBlockWidth100HorizontalAlignmentCenterVerticalAlignmentCenterText{Binding City}TextAlignmentCenter/TextBlockRectangle Width1 FillBlack/RectangleTextBlockWidth100HorizontalAlignmentCenterVerticalAlignmentCenterText{Binding County}TextAlignmentCenter/TextBlock/StackPanel/DataTemplate/DataGridTemplateColumn.CellTemplate/DataGridTemplateColumnDataGridTextColumnWidth100Binding{Binding Motto}Header格言DataGridTextColumn.HeaderStyleStyleSetter PropertyTextBlock.HorizontalAlignment ValueStretch/SetterSetter PropertyTextBlock.TextAlignment ValueCenter/Setter/Style/DataGridTextColumn.HeaderStyleDataGridTextColumn.HeaderTemplateDataTemplateTextBlockHorizontalAlignmentCenterVerticalAlignmentCenterText格言TextAlignmentCenterTextWrappingWrap/TextBlock/DataTemplate/DataGridTextColumn.HeaderTemplateDataGridTextColumn.ElementStyleStyleSetter PropertyTextBlock.TextAlignment ValueCenter/SetterSetter PropertyTextBlock.TextWrapping ValueWrap/SetterSetter PropertyTextBlock.HorizontalAlignment ValueCenter/SetterSetter PropertyTextBlock.VerticalAlignment ValueCenter/Setter/Style/DataGridTextColumn.ElementStyle/DataGridTextColumn/DataGrid.Columns/DataGrid
/Grid
在这里的窗体布局中同时对姓名和格言的表头样式和Cell里面的样式进行了修改。其中DataGridTextColumn.HeaderTemplate包括的是头部的样式DataGridTextColumn.ElementStyle包括的是Cell的样式。定义的实体类public class UserInformation{public string UserName { get; set; }public string Province { get; set; }public string City { get; set; }public string County { get; set; }public int Age { get; set; }public string Motto { get; set; }}
ViewModel类的定义public class MainViewModel:ViewModelBase{private string _title;public string Title{get { return _title; }set { Set(ref _title, value); }}private ObservableCollectionUserInformation _userInformations;public ObservableCollectionUserInformation UserInformations{get { return _userInformations; }set { Set(ref _userInformations, value); }}public MainViewModel(){Title Guid.NewGuid().ToString();UserInformations new ObservableCollectionUserInformation(new ListUserInformation(){new UserInformation(){UserName Bob,Age 32,Province 山东,City 济南,County 天桥,Motto 会当云绝顶\r\n一览众山小。},new UserInformation(){UserName Bob,Age 32,Province 山东,City 济南,County 天桥,Motto 会当云绝顶\r\n一览众山小。},new UserInformation(){UserName Bob,Age 32,Province 山东,City 济南,County 天桥,Motto 会当云绝顶\r\n一览众山小。}});}}
本实例使用了.netcore 3.1版本进行的开发但是对于.net framework同样适用。MVVM模式是使用MVVMLightstd10可以从nuget上面进行下载。本示例已上传至GITHUBhttps://github.com/mzy666888/MultiHeaderOfDataGridWpfApp— END —「扩展阅读」[GitHub] 75的 C# 数据结构和算法实现谁说.NET不适合搞BDML、AI推荐一个集录屏、截图、音频于一体的软件给大家10个用于C.NET开发的基本调试工具Xamarin.Forms 二维码扫描实践在Asp.Net Core MVC 开发过程中遇到的问题总结前端小白在asp.net core mvc中使用ECharts基于Asp.Net Core MVC和AdminLTE的响应式管理后台之侧边栏处理[译]如何在C#中调试LINQ查询C# 语言性能提升方法使用MQTTnet搭建Mqtt服务器OxyPlot在WinForm中的应用「公众号推荐」回复「redis」 获取5.0.9版的Windows安装包exe回复「ca」 获取 截图、GIF等工具三件套便携版和安装版全部包括回复「新书」 获取《ASP.NET Core 3框架揭秘》回复「进阶」 获取 《CLR via C#第4版》购书链接回复「本质论」获取 《C# 7.0本质论》购书链接回复「WPF」获取 WPF 电子书