数据绑定概述.doc
文本预览下载声明
数据绑定概述 发送反馈
Windows Presentation Foundation (WPF) _数据绑定为应用程序提供了一种简单、一致的数据表示和交互方法。元素能够以 公共语言运行时 (CLR) 对象和 XML 形式绑定到来自各种数据源的数据。ContentControl(如 Button)和 ItemsControl(如 ListBox 和 ListView)具有内置功能,使单个数据项或数据项集合可以进行灵活的样式设置。 可以在数据之上生成排序、筛选和分组视图。
WPF 中的数据绑定功能与传统模型相比具有一些优势,包括本质上支持数据绑定的各种属性、灵活的数据 UI 表示形式,以及业务逻辑与 UI 的完全分离。
本主题首先讨论 WPF 数据绑定的基本概念,然后详细介绍 Binding 类以及数据绑定的其他功能的用法。
本主题包括下列各节。
什么是数据绑定?
基本数据绑定概念
创建绑定
数据转换
绑定到集合
数据模板化
数据验证
调试机制
相关主题
什么是数据绑定?
数据绑定是在应用程序 UI 与业务逻辑之间建立连接的过程。如果绑定具有正确设置并且数据提供正确通知,则当数据更改其值时,绑定到数据的元素会自动反映更改。数据绑定可能还意味着如果元素中数据的外部表现形式发生更改,则基础数据可以自动更新以反映更改。例如,如果用户编辑 TextBox 元素中的值,则基础数据值会自动更新以反映该更改。
数据绑定的一种典型用法是将服务器或本地配置数据放置到窗体或其他 UI 控件中。在 WPF 中,此概念得到扩展,包括了大量属性与各种数据源的绑定。在 WPF 中,元素的依赖项属性可以绑定到 CLR 对象(包括 ADO.NET 对象或与 Web 服务和 Web 属性相关联的对象)和 XML 数据。
有关数据绑定的示例,请参见来自 Data Binding Demo(数据绑定演示)的以下应用程序 UI:
上面是显示拍卖项列表的应用程序 UI。该应用程序演示数据绑定的以下功能:
ListBox 的内容绑定到 AuctionItem 对象的集合。 AuctionItem 对象具有一些属性,如 Description、 StartPrice、 StartDate、 Category、 SpecialFeatures。
ListBox 中显示的数据( AuctionItem 对象)进行模板化,以便显示每个拍卖项的说明和当前价格。 这是使用一个 DataTemplate 实现的。 此外,每个项的外观取决于要显示的 AuctionItem 的 SpecialFeatures 值。 如果 AuctionItem 的 SpecialFeatures 值为 Color,则该项具有蓝色边框。 如果该值为 Highlight,则该项具有橙色边框和一个星号。 数据模板化一节提供了有关数据模板化的信息。
用户可以使用提供的 CheckBox 对数据进行分组、筛选或排序。 在上面的图像中,选中了“Group by category”(按类别分组)和“Sort by category and date”(按类别和日期排序) CheckBox。 您可能已经注意到数据是根据产品类别分组的,而且类别名称按字母顺序排序。这些项在每个类别中也是按照起始日期排序的,虽然从该图像中很难注意到这一点。这是使用 集合视图 实现的。 绑定到集合一节讨论了集合视图。
当用户选中一个项时, ContentControl 会显示选定项的详细信息。 这称为 主从方案。 主从方案一节提供了有关此类型的绑定方案的信息。
StartDate 属性的类型为 DateTime,该类型返回一个日期,包括精确到毫秒的时间。 在此应用程序中,使用了一个自定义转换器,以便显示较短的日期字符串。数据转换一节提供了有关转换器的信息。
当用户单击 “Add Product”(添加产品)按钮时,会出现下面的窗体:
用户可以编辑窗体中的字段,使用简略预览和详细预览窗格来预览产品清单,然后单击 “submit”(提交)以添加新的产品清单。 任何现有的分组、筛选和排序功能都会应用于新项。在这种特殊情况下,在上面图像中输入的项会作为 Computer 类别中的第二项显示。
“Start Date”(起始日期)TextBox 中提供的验证逻辑未在此图像中显示。 如果用户输入一个无效日期(无效的格式或过去的日期),则会通过一个 ToolTip 和 TextBox 旁的一个红色感叹号来通知用户。 数据验证一节讨论了如何创建验证逻辑。
在详细介绍数据绑定的上述不同功能之前,我们会先在下一节中讨论一些对理解 WPF 数据绑定非常重要的基本概念。
基本数据绑定概念
本节包含下列子节。
数据流的方向
触
显示全部