使用 DataGrid 控件
DataGrid 控件可以在多个列和行中显示数据集合。它提供了一项功能,可按列对数据排序。
有关 DataGrid 控件的详细信息,请参阅 MSDN 上的 DataGrid 类 (System.Windows.Controls)。
创建要在 DataGrid 控件中显示的示例数据
可以在 DataGrid 控件中使用任意类型的数据。如果还没有可用于本主题下文中的“填充 DataGrid 控件”过程的数据,请按照以下过程设置示例数据,这些数据将充分阐明 DataGrid 控件的功能:
如果看不到“数据”面板,请在“窗口”菜单上单击“数据”。
在“数据”面板中,单击“添加示例数据源”
,然后单击“定义新的示例数据”。
在“定义新的示例数据”对话框中,可以更改数据集的默认名称,然后选择希望能够使用这些数据的项目部件。
选中“在应用程序运行时启用示例数据”框。
提示:
通过使用“在应用程序运行时启用示例数据”框,可让项目在应用程序运行时显示示例数据。如果未选中该框,Microsoft Expression Blend 只会在美工板上显示示例数据。
有关详细信息,请参阅使应用程序在运行时显示示例数据。
单击“确定”。
此时将创建一个示例数据源,其中包含由三种类型的属性(字符串属性
、数字属性
和布尔属性
)组成的集合
。
若要充分利用示例数据和 DataGrid 控件的功能,请向集合中添加图像属性。
单击“集合”
旁边的“添加简单属性”
以向集合中添加新属性。
提示:
您可以单击“添加简单属性”按钮
旁边的下拉箭头来选择要添加的不同类型的属性:简单、复杂和集合。
单击新属性(“Property4”)旁边的“更改属性类型”
。此时将出现一个编辑器,在该编辑器中,单击“类型”旁边的下拉箭头,然后单击“图像”。
单击编辑器外的任意位置可将其关闭。
“Property4”旁的图标会随即更新,以表明该属性是图像
属性。
您现在已经拥有了可在 DataGrid 控件中显示的示例数据集合。
有关修改示例数据和添加更多数据属性的信息,请参阅修改示例数据。
填充 DataGrid 控件
有多种方法可以将数据绑定到美工板上的控件。以下过程显示了使用 DataGrid 控件时最快捷的绑定方法。
有关其他选项,请参阅将对象绑定到数据。
在“工具”面板中,单击“资产”
。
提示:
也可以通过单击“窗口”菜单上的“资源”,在固定面板中显示“资产”面板。
在“资产”面板中,展开“控件”,单击“全部”,然后单击“DataGrid”
控件。
“工具”面板中“资产”
下方的按钮将显示 DataGrid 控件的图标,并且该按钮处于选中状态。
使用鼠标在主文档中的美工板上绘制大型 DataGrid 对象。
在“数据”面板中,将示例数据集合(“
集合”)拖到新的数据网格对象上。
数据网格会在示例数据源中显示该集合,并将图像属性转换为图像对象,布尔属性转换为复选框。
按 F5 运行应用程序。
如果正在使用上一过程中创建的示例数据,并且在测试应用程序时启用了这些示例数据,则会看到下图所示的情况:
提示:
若要在修改 DataGrid 对象显示的示例数据之后在美工板上更新该对象,可以将单个数据属性拖到控件上以添加新列,也可以再次拖动整个集合。在“对象和时间线”面板中,可以展开“DataGrid”对象的“列”节点以删除列和对列重新排序。
在 DataGrid 控件中更改列标签
在将数据集合拖到数据网格控件上后,将按属性的名称设置列标签。但是,您可以在填充该数据网格控件之后更改列标签。
在“对象和时间线”面板中,展开“[DataGrid]”对象以显示列对象。
选择第一个列对象(“[DataGridTemplateColumn] "Property1"”)。在“属性”面板中的“Header”属性旁,键入一个描述性名称,如“说明”,然后按 Enter。
选择其他两个列对象并更改其名称。
按 F5 运行应用程序。
如果正在使用上一过程中创建的示例数据,并且在测试应用程序时启用了这些示例数据,则会看到类似于下图所示的情况:
更改 DataGrid 控件的外观
通过修改控件属性,或者修改用于设置控件样式的模板,可以更改控件的外观。您可以修改总模板、空行模板、应用于单个单元格的模板、标题模板以及其他模板。
有关详细信息,请参阅创建或修改模板。
更改列标题的外观
在“对象和时间线”面板中或在美工板上,右键单击“DataGrid”对象,指向“编辑其他模板”,指向“编辑 ColumnHeaderStyle”,然后再单击“编辑副本”。
在“创建样式”对话框中,单击“确定”。
Expression Blend 将进入模板编辑模式,而美工板顶部的痕迹导航栏会显示您正在 DataGrid 对象内编辑模板。
在“对象和时间线”面板中向模板添加其他对象,或者在“属性”面板中修改现有对象的属性。例如,在“[Grid]”对象中,有一条名为“SortIcon”的路径,它表示排序按钮的图标。您可以将该路径转换为图像或者修改该路径。排序按钮会在您运行应用程序并单击某个列标题时出现。
提示:
某些属性周围可能会显示黄色的范围框,表示它们已绑定到数据,或绑定到使用该模板的控件的属性(模板绑定)。
有关模板绑定的详细信息,请参阅设置支持模板的控件的样式。
更改包含图像的单元格的外观
在美工板上,右键单击数据网格对象中某个显示图像的单元格,指向“编辑列模板”,指向“编辑 CellTemplate”,然后单击“编辑当前模板”。
在“对象和时间线”面板中向“[StackPanel]”布局容器添加其他对象(如版权符号),或者在“属性”面板中选择“[Image]”对象并修改其属性。
所做的更改将影响所有包含图像的单元格。
更改可选行的颜色
在“对象和时间线”面板中,选择“[DataGrid]”对象。
在“属性”面板中的“行”下,在“AlternatingRowBackground”属性旁边的矩形内单击。
此时,将显示画笔编辑器。
通过单击颜色编辑器顶部的其中一个选项卡来选择画笔类型。如果使用现有画笔(“纯色画笔”
)并更改颜色,请确保增大“Alpha”属性值以使颜色不透明。
可以通过修改“RowBackground”属性来更改其他行的颜色。
有关修改画笔的详细信息,请参阅设置颜色、画笔和蒙板。