关键词:
前面我们学习了ListView控件的使用示例,今天我们来学习DataGrid的有关知识。提到DataGrid 不管是Asp.Net中的网页开发还是WinForm应用程序开发都会频繁使用。通过它我们可以灵活的在行与列间显示各种数据。本篇将学习WPF中的DataGrid 相关功能。
首先,先介绍一下DataGrid中有哪些列的类型。
DataGrid列的类型
默认情况下,当我们为DataGrid 控件设置ItemSource 属性后,DataGrid 会根据数据类型自动生成相应的列,下表列出DataGrid 支持的四种列及其数据类型。
下表列出了 DataGrid 提供的四个列类型。
列类型 |
显示数据 |
数据类型 |
DataGridHyperlinkColumn |
使用显示 URI 数据。 |
URI |
DataGridComboBoxColumn |
使用显示枚举数据与其他需要下拉框选择的数据。 |
Enum,String |
DataGridTextColumn |
使用显示文本 |
String |
DataGridCheckBoxColumn |
使用显示布尔数据 |
Bool |
|
|
|
|
|
|
在创建DataGrid 时可以通过AutoGenerateColumns 属性设置列是否自动生成,从而加入自定义列。如果DataGrid 中同时包含“自动生成列”与“用户自定义列”,则首先创建“用户自定义列”。如下图。
其次:我们来做一个示例,学习如何使用DataGrid。
制做DataGrid示例的界面
1)按照上一篇文章中所写的步骤,使用Visual Studio 2013创建一个WindowGrid界面。如下图。
2)在Visual studio 2013中的工具箱中,找到DataGrid控件,然后双击。把DataGrid控件添加窗体界面中。如下图1,图2。注意,图2中的红框所标示的那个小框,就是DataGrid控件,是不是与WindowForm中的DataGrid有很大的不同呀。
图1
图2
3)给DataGrid添加列。先鼠标左键选中,窗体界面中的小方块,然后点击Visual Studio 2013最右边的“属性”标签,然后Visual Studio 2013会弹出“属性”编辑窗口。如下图。
4) 在上图中使用鼠标左键点击Columns那一行的按钮。如上图中的红色框,然后会弹出一个对话框,如下图。
4)在上图中,选择相应的列的类型,然后点击“添加”按钮,添加列。如下图。
5) 根据我这个示例的实际情况,我根据需要我添加了5列DataGridTextColumn,和一列DataGridComboBoxColumn。添加完成之后,如下图。看起来与WindowForm中的DataGrid很像了吧。
6) 下面是全部完成之后的实际的XAML代码。
<Window x:Class="WpfApp1.WindowGrid" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Grid示例" Height="400" Width="600"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="auto"/> <RowDefinition Height="22"/> </Grid.RowDefinitions> <DataGrid x:Name="gridCitys" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Binding="{Binding CityID}" ClipboardContentBinding="{x:Null}" Header="CityID"/> <DataGridTextColumn Binding="{Binding CityName}" ClipboardContentBinding="{x:Null}" Header="CityName"/> <DataGridTextColumn Binding="{Binding ZipCode}" ClipboardContentBinding="{x:Null}" Header="ZipCode"/> <DataGridComboBoxColumn x:Name="cboProvince" ClipboardContentBinding="{x:Null}" Header="ProvinceID" SelectedValuePath="ProvinceID" SelectedValueBinding="{Binding Path=ProvinceID,UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="ProvinceName" SelectedItemBinding="{x:Null}" > </DataGridComboBoxColumn> <DataGridTextColumn Binding="{Binding DateCreated}" ClipboardContentBinding="{x:Null}" Header="DateCreated"/> <DataGridTextColumn Binding="{Binding DateUpdated}" ClipboardContentBinding="{x:Null}" Header="DateUpdated"/> </DataGrid.Columns> </DataGrid> <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" > <TextBlock Text="显示信息" TextAlignment="Center" /> <TextBox Name="txtMsg" IsReadOnly="True" Text="" Width="320" TextAlignment="Center" /> </StackPanel> <WrapPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right"> <Button HorizontalAlignment="Right" Name="btnRefresh" Height="22" VerticalAlignment="Top" Width="65" Click="btnRefresh_Click">刷新</Button> <Button HorizontalAlignment="Right" Name="btnUpdate" Height="22" VerticalAlignment="Top" Width="65" Click="btnUpdate_Click" >更新</Button> </WrapPanel> </Grid> </Window>
wpf入门教程系列二十——listview示例
第四步、WPF后台逻辑代码编写在后台用EntityFramework6.1的CodeFirst方式获取数据库中的数据。同时,在“刷新”按钮的方法中进行数据绑定。操作步骤如下:1) 在“刷新”按钮上使用鼠标右键,单击,会弹出“属性”窗口。如下... 查看详情
wpf入门教程系列十一——依赖属性
一、依赖属性基本介绍 本篇开始学习WPF的另一个重要内容依赖属性。 大家都知道WPF带来了很多新的特性,其中一个就是引入了一种新的属性机制——依赖属性。依赖属性出现的目的是用来实现WPF中的样式、... 查看详情
hadoopmapreduce编程api入门系列之网页流量版本1(二十一)
不多说,直接上代码。 对流量原始日志进行流量统计,将不同省份的用户统计结果输出到不同文件。 代码packag 查看详情
springboot2系列教程(二十一)|自动配置原理
微信公众号:一个优秀的废人。如有问题,请后台留言,反正我也不会听。前言这个月过去两天了,这篇文章才跟大家见面,最近比较累,大家见谅下。下班后闲着无聊看了下SpringBoot中的自动配置,把我的理解跟大家说下。配... 查看详情
《c#零基础入门之百识百例》(二十一)数组遍历--删除数组零元素
...题分析3.3参考代码前言本文属于C#零基础入门之百识百例系列文章。此系列文章旨在为学习C#语言的童鞋提供一套系统的学习路径。此系列文章都会通过【知识点】【练习题】的形式呈现。有任何问题,你都可以通过评论,私信... 查看详情
wpf入门教程系列十九——listview示例
经过前面的学习,今天我做一个比较综合的WPF程序示例,主要包括以下功能: 1) 查询功能。从数据库(本地数据库(local)/Test中的S_City表中读取城市信息数据,然后展示到WPF的Window上的一个ListView上。2) 数据联动功... 查看详情
linux系列教程(二十一)——linux的bash基本功能
上篇博客我们介绍了什么是shell,以及编写shell脚本的两种执行方式。我们知道在敲命令的时候,有很多快捷键,比如tab键能补全命令,在比如为什么我们直接敲ll命令能显示目录的长格式,其实这是bash的基本功能。本篇博... 查看详情
wpf学习第二十一章特殊容器(代码片段)
原文:【WPF学习】第二十一章特殊容器 内容控件不仅包括基本控件,如标签、按钮以及工具提示;它们还包含特殊容器,这些容器可用于构造用户界面中比较大的部分区域。 首先介绍ScrollViewer控件,该控件直接继承自Conte... 查看详情
java多线程快速入门(二十一)
CountDownLatch(闭锁)计数器 有一个任务A,它要等待其他4个任务执行完毕之后才执行,此时就可以利用CountDownLatch来实现这种功能packagecom.cppdy;importjava.util.concurrent.CountDownLatch;classMyThread17extendsThread{privateCountDownLatchcountdownlatc 查看详情
通学智能合约系列(二十一)--结构体<下>(代码片段)
大家好,通学技术,学通技术,让我们一起继续来看看智能合约结构体memory和storage类型转换吧~6、结构体storage转storage详解hello,大家好,我们紧接着上节内容来看看,结构体关于storage和memory类型的转换。... 查看详情
wpf学习第二十一章特殊容器(代码片段)
内容控件不仅包括基本控件,如标签、按钮以及工具提示;它们还包含特殊容器,这些容器可用于构造用户界面中比较大的部分区域。 首先介绍ScrollViewer控件,该控件直接继承自ContentControl类,提供了虚拟界面,允许用... 查看详情
《c#零基础入门之百识百例》(九十一)预处理器指令--代码示例
...表达式3.4代码示例前言本文属于C#零基础入门之百识百例系列文章。此系列文章旨在为学习C#语言的童鞋提供一套系统的学习路径。此系列文章都会通过【知识点】【练习题】的形式呈现。有任何问题,你都可以通过评论,私信... 查看详情
《c#零基础入门之百识百例》(九十一)预处理器指令--代码示例
...表达式3.4代码示例前言本文属于C#零基础入门之百识百例系列文章。此系列文章旨在为学习C#语言的童鞋提供一套系统的学习路径。此系列文章都会通过【知识点】【练习题】的形式呈现。有任何问题,你都可以通过评论,私信... 查看详情
第二十一节——springmvc拦截器入门(代码片段)
一、设置一个target路径,用于跳转到index页面@ControllerpublicclassTargetController@RequestMapping("/target")publicModelAndViewshow()ModelAndViewmodelAndView=newModelAndView();modelAndView. 查看详情
vue教程(二十一)子组件传参父组件(代码片段)
Vue教程(二十一)子组件传参父组件要点通过事件向父组件发送消息this.$emit()代码实现<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible" 查看详情
reactnative系列教程之十一插件的安装使用与更新(示例:react-native-tab-navigator)
本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自【黑米GameDev街区】原文链接: http://www.himigame.com/react-native/2294.htmlwidth="150"height="210"frameborder="0"scrolling="no 查看详情
springboot入门二十一,全局异常处理
一共两个文件,一个处理全局异常,保存信息到日志,另外一个负责返回异常信息给接口,只要将其文件添加到项目中,无需再做其他配置即可1.MyExceptionHandler.java全局异常处理类优先执行此类,这里不好抓取404、403等错误信息getMaps()请... 查看详情
hulu机器学习问题与解答系列|二十一:分类排序回归模型的评估
本期问题的解答结合了具体的Hulu业务案例,可以说是很有趣又好懂了。快快学起来吧! 今天的内容是【分类、排序、回归模型的评估】 场景描述在模型评估过程中,分类问题、排序问题、回归问题往往需要使用不... 查看详情