WPF 4 DataGrid 控件(进阶篇一)

上一篇《WPF 4 DataGrid 控件(自定义样式篇)》中,我们掌握了DataGrid 列表头、行表头、行、单元格相关的自定义样式方法,本 篇我们继续对自定义样式进行一些高级设置。

DataGridTemplateColumn 类

除了下表所示的列类型外,我们还可以通过DataGridTemplateColumn 自定义列样式,为DataGrid 添加更完美的数据显示方式。

首先我们在类中添加ExamDate 用来在DataGrid 中显示学生考试日期,并为相应学生赋值。

public class Member
{
   public string Name { get; set; }
   public string Age { get; set; }
   public SexOpt Sex { get; set; }
   public bool Pass { get; set; }
   public DateTime ExamDate { get; set; }
   public Uri Email { get; set; }
}

… …
ObservableCollection<Member> memberData = new ObservableCollection<Member>();
… …
memberData.Add(new Member() 
{
   Name = "Lucy", Age = "25", 
   Sex = SexOpt.Female, Pass = true, 
   ExamDate = new DateTime(2010, 4, 10), 
   Email = new Uri("mailto:Lucy@school.com") 
});
dataGrid.DataContext = memberData;
… …

接下来要在<Window.Resources> 中定义两种DataTemplate 样式模板(如下代码),第一个用来设置日期列的显示方式:

<DataTemplate x:Key="DateTemplate" >
   <StackPanel Width="40" Height="30">
     <Border Background="Orange" BorderBrush="Black" BorderThickness="1">
       <TextBlock Text="{Binding ExamDate, StringFormat={}{0:MM-dd}}"
             FontSize="10" HorizontalAlignment="Center"/>
     </Border>
     <Border Background="White" BorderBrush="Black" BorderThickness="1">
       <TextBlock Text="{Binding ExamDate, StringFormat={}{0:yyyy}}"
             FontSize="10" HorizontalAlignment="Center"/>
     </Border>
   </StackPanel>
</DataTemplate>

时间: 2024-09-19 08:55:36

WPF 4 DataGrid 控件(进阶篇一)的相关文章

WPF 4 DataGrid 控件(进阶篇二)

上一篇<WPF 4 DataGrid 控件(进阶篇一)>中我们通过DataGridTemplateColumn 类自定义编辑了日期列的样式,当然也可以根据个 人需要设置任何样式模板.上例中Pass Exam 列显示学生是否通过考试,但我们并不知道该学生每门学科的成绩是多少.本篇将为 DataGrid 行增加这些详细信息,使得DataGrid 数据更加充实. 首先,我们仍然先更新一下Member 类,增加Math 和History 两门学科: public class Member { publ

WPF 4 DataGrid 控件(自定义样式篇)

在<WPF 4 DataGrid 控件(基本功能篇)>中我们已经学习了DataGrid 的基本功能及使用方法.本篇将继续介绍自定义DataGrid 样 式的相关内容,其中将涉及到ColumnHeader.RowHeader.Row.Cell 的各种样式设置. ColumnHeaderStyle 属性 一般来讲列表头是用户首先注意的内容,那么如何在DataGrid 中设计一个美观的表头呢.我们既可以在<DataGrid>中通过 <DataGrid.ColumnHeaderSty

WPF 4 DataGrid 控件(基本功能篇)

提到DataGrid 不管是网页还是应用程序开发都会频繁使用.通过它我们可以灵活的在行与列间显示各种数据.本篇将详细介绍WPF 4 中DataGrid 的相关功能. 自定义列 默认情况下,当我们为DataGrid 控件设置ItemSource 属性后,DataGrid 会根据数据类型自动生成相应的列,下表列出DataGrid 支持 的四种列及其数据类型. 在创建DataGrid 时可以通过AutoGenerateColumns 属性设置列是否自动生成,从而加入自定义列.如果DataGrid 中同

wpf datagrid控件拖动列头,改变顺序,获取改变后的排列顺序

问题描述 wpf datagrid控件拖动列头,改变顺序,获取改变后的排列顺序 wpf datagrid控件拖动列头,改变顺序,获取改变后的排列顺序 解决方案 看看有没有列顺序改变触发的事件,如果有在这个事件里面获取

wpf mvvm 模式的datagrid控件模板列的列头里的checkbox怎么在viewmodel里撤销勾选状态

问题描述 wpfmvvm模式的datagrid控件模板列的列头里的checkbox怎么在viewmodel里撤销勾选状态点击全选,点击下一页分以后全选框还是勾选状态,希望datagrid重新加载数据后模板的全选状态为未勾选, 解决方案 解决方案二:你需要编写勾选的点击事件,绑定只是用来显示而不是做动作处理,mvvm模式也需要后台事件处理的支持的.

DataGrid控件(一)

datagrid|datagrid控件 因为是刚开始学asp.net,最主要的是因为工作的原因,现在还不使用asp.net来开发软件,所以学习时间就相对少了一些,学起来也比较慢,再加上我这个人奇笨,所以就有了下面这篇文章. 捧着一本asp.net的书啃了半天,看到介绍DataGrid控件的时候,禁不住想做个小程序试试.书上给了两个例子,一个是自动生成列的,另外一个是手动生成列的,我选择手动生成列.代码如下: <%@ page language=vb runat=server debug=true

怎样使用DataGrid控件

datagrid|datagrid控件 [Visual Basic, C#, JScript] 下面的示例展示如何使用 DataGrid 控件来显示数据源中的项.[Visual Basic] <%@ Page Language="VB" AutoEventWireup="True" %><%@ Import Namespace="System.Data" %> <html> <script languag

服务器端动态加载DataGrid控件并设置其属性

datagrid|datagrid控件|动态|服务器|加载|datagrid|datagrid控件|服务器|加载 DataGrid在Asp.net编程中占有非常重要的地位,对于浏览器中大批量数据的呈现,DataGrid几乎不可缺少.常用的设置DataGrid属性的方法都是在前台由Asp语句实现,这样显然不适合DataGrid的动态加载,通过后台C#代码实现前台的功能显得非常重要,下面就通过一个实例来说明其设置方法.同其它动态加载服务器控件的方法一样,要在客户端浏览器上呈现DataGrid,必须要

ASP.NET:DataGrid控件的分页功能

asp.net|datagrid|datagrid控件|分页 DataGrid 控件是一个基于模板样式的.多功能的.多列的数据绑定控件.在三个数据绑定控件中,DataGrid是功能最为强大的,其次时DataList控件,然后是轻量级的数据绑定控件Repeater.要自定义 DataGrid 中各列的布局,您可以将列类型设置为"模板",然后修改列的模板.DataGrid 控件也可以无需模板,只需按照默认的设置即可进行呈现,这使得该控件成了用于报告方案的理想控件.      我们可以把Da