将对象绑定到数据
通过将数据项绑定到美工板上的对象,即可显示数据。
数据绑定由两部分组成:
数据上下文 数据上下文用于标识从其中获取数据的数据源。数据上下文是可继承的,因此,您可以将数据上下文分配给父对象,以便所有子对象可以访问相同的数据。在将多个对象绑定到相同数据源中的数据以及创建“列表-细节”设计时,这一点非常有用。
有关详细信息,请参阅创建“列表-细节”数据绑定。
属性绑定 属性绑定用于标识某属性绑定到的特定数据项。例如,您可以将 TextBlock 对象的 Text 属性绑定到数据源中的某个字符串项,或者将 ListBox 的 ItemsSource 属性绑定到数据源中的某个集合。在与数据上下文相同的对象上可能不存在属性绑定,但是,只要对树中较高级别的对象设置了数据上下文,属性绑定便会生效。
若要创建数据绑定,可以从“数据”面板中拖动数据项,也可以使用“属性”面板设置数据上下文和属性绑定,从而手动创建数据绑定。
通过从“数据”面板拖动项来绑定数据
在“数据”面板中,执行下列操作之一:
单击“列表模式” 以在项目控件(如 ListBox 、 DataGrid 、 TreeView 、 ComboBox 等等)中显示数据。“列表模式”用于根据集合创建列表。
单击“详细信息模式” 以显示集合内某条记录中的数据或显示单个数据项。
在“数据”面板中,选择一个或多个数据项,然后将所选项拖到美工板上。可以将所选项拖到美工板的空白区域上,也可以拖到现有对象上。
Microsoft Expression Blend 将根据所拖动的数据类型来确定要执行的操作。下表列出了 Expression Blend 如何解释不同的数据选择操作:
操作 在列表模式下 在详细信息模式下 将集合或集合中的项拖到美工板的空白区域上。
此时将创建一个 ListBox 对象,以按每行一条记录的方式显示数据。 ListBox 的 ItemsSource 属性将设置为该集合的名称。 DataContext 属性在父版式面板中进行设置。
有关示例,请参阅创建“列表-细节”数据绑定。
将创建对象以显示数据集合的单条记录中的所有选定项。
如果在列表模式下从同一集合中拖动项之后再执行此操作,将自动设置“列表-细节”关系。
有关详细信息,请参阅创建“列表-细节”数据绑定。
如果之前未在列表模式下创建绑定,则只显示集合内第一条记录中的数据。
将分层集合或分层集合中的项拖到美工板的空白区域上。
此时将创建一个 TreeView 对象,以按每行一条记录的方式显示数据。 TreeView 的 ItemsSource 属性将设置为该集合的名称。 DataContext 属性在父版式面板中进行设置。
有关示例,请参阅使用 TreeView 控件。
将创建对象以显示数据集合的单条记录中的所有选定项。
如果在列表模式下从同一集合中拖动项之后再执行此操作,将自动设置“列表-细节”关系。
有关详细信息,请参阅创建“列表-细节”数据绑定。
如果之前未在列表模式下创建绑定,则只显示集合内第一条记录中的数据。
将集合或集合中的项拖到现有项目控件(如 ListBox 、 DataGrid 、 TreeView 、 ComboBox 等等)上。
项目控件按每行一条记录的方式显示数据。项目控件的 ItemsSource 属性将设置为该集合的名称。 DataContext 属性在父版式面板中进行设置。
有关示例,请参阅使用 DataGrid 控件。
将创建对象以显示数据集合的单条记录中的所有选定项。
如果在列表模式下从同一集合中拖动项之后再执行此操作,将自动设置“列表-细节”关系。
有关详细信息,请参阅创建“列表-细节”数据绑定。
如果之前未在列表模式下创建绑定,则只显示集合内第一条记录中的数据。
将不属于某个集合的单个数据项拖到美工板的空白区域上。
此时将创建一个对象以显示数据。例如,如果数据是字符串或数字,则将创建 TextBlock 。如果数据是布尔值,则将创建 CheckBox 。如果数据是某个图像文件的路径,则该图像将显示在 Image 对象中。
与在列表模式下相同。
将不属于某个集合的单个数据项拖到现有对象上。
Expression Blend 将尝试确定数据应绑定到的对象属性。例如,如果数据是字符串或数字,则将绑定到 Content 或 Text 属性。如果数据是布尔值,则将绑定到 IsEnabled 、 IsChecked 或其他布尔属性。如果数据是某个图像文件的路径,则该数据将绑定到 Source 属性。
如果找不到相应的属性,则将出现“创建数据绑定”对话框。在“创建数据绑定”对话框内的“属性”下拉列表中,可以选择要将数据绑定到的属性。例如,如果数据是一个表示颜色的十六进制值的字符串,则可以在按住 Shift 的同时将该数据项拖到文档的根对象上,然后在“创建数据绑定”对话框中选择“Background”属性以更改文档的背景色。
与在列表模式下相同。
使用“属性”面板绑定数据
在“对象和时间线”面板中,选择要在其中显示数据的对象或要将数据绑定到的对象,或者选择树中级别较高的对象(如父版式面板)。
您将在该对象中设置数据上下文。
提示: 或者,也可以右键单击“对象和时间线”面板中的对象。如果元素是内容控件,则选择“将 Content 数据绑定到数据”。如果元素是项目控件,则选择“将 ItemsSource 数据绑定到数据”。如果按照此提示进行,则跳到步骤 3 以继续。
在“属性”面板中的 DataContext 属性旁,单击“高级选项”,然后单击“数据绑定”。
在“创建数据绑定”对话框中,单击“数据字段”选项卡。
在“数据源”下,选择要从中绑定数据的数据源。
单击“确定”以关闭“创建数据绑定”对话框。
您现在可以将此对象或任何子对象的属性绑定到所选数据源中的数据项。
选择要在其中显示数据的对象或要将数据绑定到的对象。
在“属性”面板中,找到要绑定到数据的属性。请确保该属性的类型与要绑定的数据项的类型相兼容。例如,若要绑定到集合中的数据项,请选择 ItemsSource 属性(诸如 ListBox 、 DataGrid 、 TreeView 、 ComboBox 之类的项目控件中有提供)。若要绑定到字符串或数字数据项,请选择字符串属性。
在该属性旁边,单击“高级选项”,然后单击“数据绑定”。
在“创建数据绑定”对话框中,单击“显式数据上下文”选项卡。
在“字段”下,选择要将属性绑定到的数据项。
提示: 只会显示兼容的数据项。若要显示所有项,请在“显示”下拉列表中选择“所有属性”。
(可选)在“创建数据绑定”对话框中设置其他字段。例如,如果数据的类型与属性类型不匹配,则可能必须选择值转换器。Expression Blend 会尝试转换数据,但如果无法进行转换,则不会显示该数据。在这种情况下,必须创建一个值转换器,并在“创建数据绑定”对话框中将其选中。
有关详细信息,请参阅动手试验:将数据从一种类型转换为另一种类型。
单击“确定”以关闭“创建数据绑定”对话框。
如果使用的是示例数据,则数据将显示在美工板上。如果使用的是实时数据,请按 F5 查看该数据。
提示: 可以将同一数据绑定到多个对象。也可以设置“列表-细节”设计,在该设计中将更新某个对象,以显示在列表中选择的项的详细信息。
有关详细信息,请参阅创建“列表-细节”数据绑定。
另请参阅
任务
概念
Microsoft Corporation 版权所有 ⓒ 2011。保留所有权利。