WPF真入门教程13–DataGrid数据表格控件

  • Post author:
  • Post category:其他


在WPF中,主要使用DataGrid控件进行表格化数据的展示,控件提供一个用户界面,可用于显示单个表或显示一组表之间的分层关系,提到DataGrid 不管是Asp.Net中的网页开发还是WinForm应用程序开发都会频繁使用。


DataGrid


列的类型

列类型 显示数据 数据类型
DataGridHyperlinkColumn 使用显示 URI 数据。 URI
DataGridComboBoxColumn 使用显示枚举数据与其他需要下拉框选择的数据。 Enum,String
DataGridTextColumn 使用显示文本 String
DataGridCheckBoxColumn 使用显示布尔数据 Bool

在创建DataGrid 时可以通过AutoGenerateColumns 属性设置列是否自动生成,从而加入自定义列,我们来做一个示例,学习如何使用DataGrid。

首先在项目中controle文件夹添加窗口DataGridWin,并创建1个文件夹model,创建两个实体类User和Dept,如图:

其后在DataGridWin.xaml中进行布局,用到了DataGrid控件,代码如下:

<Window x:Class=”WpfApp6.control.DataGridWin”

xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”

xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”

xmlns:d=”http://schemas.microsoft.com/expression/blend/2008″

xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006″

xmlns:local=”clr-namespace:WpfApp6.control”

mc:Ignorable=”d”

Title=”DataGridWin” Height=”450″ Width=”800″ Loaded=”Window_Loaded”>

<Grid>

<Grid.RowDefinitions>

<RowDefinition Height=”200″/>

<RowDefinition Height=”200″/>

<RowDefinition Height=”138*”/>

</Grid.RowDefinitions>

<Grid.ColumnDefinitions>

<ColumnDefinition/>

</Grid.ColumnDefinitions>

<!–CanUserAddRows是否多一个空白行,false不允许,GridLinesVisibility表格线显示方式,默认为All,CanUserSortColumns控制是否允许对内容进行排序,默认可以,CanUserReorderColumns控制是否允许改变列顺序,默认True –>

<DataGrid Grid.Row=”0″ FontSize=”15″ ColumnHeaderHeight=”30″  ItemsSource=”{Binding}” CanUserSortColumns=”True”  AutoGenerateColumns=”False” CanUserAddRows=”False” CanUserReorderColumns=”True”  GridLinesVisibility=”Horizontal” Name=”mydatagda” HorizontalAlignment=”Left” Height=”409″ Margin=”0,0,0,0″ VerticalAlignment=”Top” Width=”782″>

<DataGrid.Columns>

<DataGridTextColumn Binding=”{Binding Name}” ClipboardContentBinding=”{x:Null}” Header=”姓名”/>

<DataGridTextColumn Binding=”{Binding Age}” ClipboardContentBinding=”{x:Null}” Header=”年龄”/>

<DataGridComboBoxColumn x:Name=”depts” ClipboardContentBinding=”{x:Null}” Header=”部门”  SelectedValuePath = “Id” DisplayMemberPath = “Dname” SelectedValueBinding=”{Binding DeptId}”  />

<!–自定义模板列–>

<DataGridTemplateColumn>

<!–自定义列头–>

<DataGridTemplateColumn.Header>

<TextBlock>工资</TextBlock>

</DataGridTemplateColumn.Header>

<!–自定义单元格–>

<DataGridTemplateColumn.CellTemplate>

<DataTemplate >

<TextBlock Text=”{Binding Salary}” Foreground=”red” />

</DataTemplate>

</DataGridTemplateColumn.CellTemplate>

</DataGridTemplateColumn>

</DataGrid.Columns>

</DataGrid>

</Grid>

</Window>

另外特别注意2点:

1、修改启动文件为上面添加的窗口DataGridWin,

2、指定窗口加载事件

在加载事件中,编写以下代码:

运行后,效果是:

这里CanUserAddRows是否多一个空白行,false不允许,GridLinesVisibility表格线显示方式,默认为All,CanUserSortColumns控制是否允许对内容进行排序,默认可以,CanUserReorderColumns控制是否允许改变列顺序,默认True,可以设置的属性很多。

飞流直下九千尺,效果帅得变变声。



版权声明:本文为hqwest原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。