flash网站需要改变,青岛市建设工程管理信息网,浙江建设职业技术学院,wordpress主题模板 国人在使用datagrid的时候#xff0c;有很多情况下#xff0c;都需要合并表头#xff0c;多行表头之类的操作。这就需要我们自定义列了。本文给出一个思路#xff0c;可以实现此需要#xff0c;只是本人对这个研究不很明白#xff0c;只是只是实现#xff0c;仅此而已。下面… 在使用datagrid的时候有很多情况下都需要合并表头多行表头之类的操作。这就需要我们自定义列了。本文给出一个思路可以实现此需要只是本人对这个研究不很明白只是只是实现仅此而已。下面是效果图下面就看看代码直接在MainWindow实现Window x:Classwpfcore.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:wpfcore xmlns:controlshttp://metro.mahapps.com/winfx/xaml/controlsmc:IgnorabledBackgroundLightBlueUseLayoutRoundingTrueTitleMainWindow Width600 Height340GridDataGrid ItemsSource{Binding Students} AutoGenerateColumnsFalse GridLinesVisibilityAll FontSize18HorizontalGridLinesBrushRed VerticalGridLinesBrushRed ColumnHeaderHeight60DataGrid.ColumnsDataGridTemplateColumn Width150DataGridTemplateColumn.HeaderStyleStyle TargetTypeDataGridColumnHeaderSetter PropertyHorizontalContentAlignment ValueCenter/Setter PropertyHeight Value60/Setter PropertyTemplateSetter.ValueControlTemplate TargetTypeDataGridColumnHeaderBorder Grid.Column0 Grid.Row1 BorderBrushRed BorderThickness1TextBlock Text姓名 HorizontalAlignmentCenter VerticalAlignmentCenter//Border/ControlTemplate/Setter.Value/Setter
/Style/DataGridTemplateColumn.HeaderStyleDataGridTemplateColumn.CellTemplateDataTemplateTextBlock Grid.Column0 Text{Binding Name} HorizontalAlignmentCenter VerticalAlignmentCenter//DataTemplate/DataGridTemplateColumn.CellTemplate/DataGridTemplateColumnDataGridTemplateColumn Width150DataGridTemplateColumn.HeaderStyleStyle TargetTypeDataGridColumnHeaderSetter PropertyHorizontalContentAlignment ValueCenter/Setter PropertyHeight Value60/Setter PropertyTemplateSetter.ValueControlTemplate TargetTypeDataGridColumnHeaderBorder Grid.Column0 Grid.Row1 BorderBrushRed BorderThickness0 1 1 1TextBlock Text年龄 HorizontalAlignmentCenter VerticalAlignmentCenter//Border/ControlTemplate/Setter.Value/Setter
/Style/DataGridTemplateColumn.HeaderStyleDataGridTemplateColumn.CellTemplateDataTemplateTextBlock Grid.Column0 Text{Binding Age} HorizontalAlignmentCenter VerticalAlignmentCenter//DataTemplate/DataGridTemplateColumn.CellTemplate/DataGridTemplateColumnDataGridTemplateColumn x:NamebaseInfoColumn Width150DataGridTemplateColumn.HeaderStyleStyle TargetTypeDataGridColumnHeaderSetter PropertyHorizontalContentAlignment ValueCenter/Setter PropertyHeight Value60/Setter PropertyVerticalAlignment ValueTop/Setter PropertyTemplateSetter.ValueControlTemplate TargetTypeDataGridColumnHeaderGridGrid.ColumnDefinitionsColumnDefinition/ColumnDefinition/ColumnDefinition//Grid.ColumnDefinitionsGrid.RowDefinitionsRowDefinition/RowDefinition//Grid.RowDefinitions Border Grid.Column0 Grid.ColumnSpan3 BorderBrushRed BorderThickness0 1 1 0TextBlockHorizontalAlignmentCenter VerticalAlignmentCenterText基本信息//BorderBorder Grid.Column0 Grid.Row1 BorderBrushRed BorderThickness0 1 1 1TextBlock Text身高 HorizontalAlignmentCenter VerticalAlignmentCenter//BorderBorder Grid.Column1 Grid.Row1 BorderBrushRed BorderThickness0 1 1 1TextBlock Text体重 HorizontalAlignmentCenter VerticalAlignmentCenter//BorderBorder Grid.Column2 Grid.Row1 BorderBrushRed BorderThickness0 1 1 1TextBlock Text性别 HorizontalAlignmentCenter VerticalAlignmentCenter//Border/Grid/ControlTemplate/Setter.Value/Setter
/Style/DataGridTemplateColumn.HeaderStyleDataGridTemplateColumn.CellTemplateDataTemplateGridGrid.ColumnDefinitionsColumnDefinition/ColumnDefinition/ColumnDefinition//Grid.ColumnDefinitionsTextBlock Grid.Column0 Text{Binding Stature} HorizontalAlignmentCenter VerticalAlignmentCenter/TextBlock Grid.Column1 Text{Binding Weight} HorizontalAlignmentCenter VerticalAlignmentCenter/TextBlock Grid.Column2 Text{Binding Gender} HorizontalAlignmentCenter VerticalAlignmentCenter//Grid/DataTemplate/DataGridTemplateColumn.CellTemplate/DataGridTemplateColumnDataGridTemplateColumn Width150DataGridTemplateColumn.HeaderStyleStyle TargetTypeDataGridColumnHeaderSetter PropertyHorizontalContentAlignment ValueCenter/Setter PropertyHeight Value60/Setter PropertyTemplateSetter.ValueControlTemplate TargetTypeDataGridColumnHeaderBorder Grid.Column0 Grid.Row1 BorderBrushRed BorderThickness0 1 1 1TextBlock Text年龄 HorizontalAlignmentCenter VerticalAlignmentCenter//Border/ControlTemplate/Setter.Value/Setter
/Style/DataGridTemplateColumn.HeaderStyleDataGridTemplateColumn.CellTemplateDataTemplateTextBlock Grid.Column0 Text{Binding Age} HorizontalAlignmentCenter VerticalAlignmentCenter//DataTemplate/DataGridTemplateColumn.CellTemplate/DataGridTemplateColumn/DataGrid.Columns/DataGrid/Grid
/WindowMainWindow.cs定义了三行数据的VMusing System;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Input;namespace wpfcore
{public partial class MainWindow : Window{public ObservableCollectionStudent Students { get; set; } new ObservableCollectionStudent();public MainWindow(){InitializeComponent();Students.Add(new Student(){Name张三,Age18,Stature188,Weight95,Gender男});Students.Add(new Student(){Name 李四,Age 18,Stature 188,Weight 95,Gender 男});Students.Add(new Student(){Name 小红,Age 18,Stature 188,Weight 95,Gender 男});DataContext this;} }public class Student{public string Name { get; set; }public int Age { get; set; }public int Stature { get; set; }public int Weight { get; set; }public string Gender { get; set; }}
}OK,全部代码就是这样思路就是使用DataGridTemplateColumn需要合并的时候就定义一个然后在每个列再分出多列绑定的数据还是原来的row的数据。这样就能拐着弯实现合并表头了。。。如果喜欢点个赞呗~