注释
此类 DataSet 和相关类是 2000 年代初的旧版 .NET Framework 技术,使应用程序能够在应用与数据库断开连接时处理内存中的数据。 这些技术对于使用户能够修改数据并将更改保留回数据库的应用特别有用。 尽管数据集是经过证实的成功技术,但新 .NET 应用程序的建议方法是使用 Entity Framework Core。 Entity Framework 提供了一种更自然的方式来将表格数据用作对象模型,并且具有更简单的编程接口。
术语 查找表 (有时称为 查阅绑定)描述一个控件,该控件基于另一个表中外键字段的值显示一个数据表中的信息。 通过将 数据源 窗口中父表或对象的主节点拖到已绑定到相关子表中的列或属性的控件上,可以创建查阅表。
例如,考虑销售数据库中的 Orders 表。 表中的每条记录都包含一个CustomerID,用于指明哪个客户下了订单。 CustomerID 是一个外键,它指向表 Customers 中的客户记录。 显示表中的 Orders 订单列表时,可能需要显示实际的客户名称而不是 CustomerID。 由于客户名称位于 Customers 表中,因此需要创建查找表以显示客户名称。 查阅表格使用 CustomerID 记录中的 Orders 值来导航关系,并返回客户名称。
创建查找表的步骤
向项目添加以下类型的数据源之一,其中包含相关数据:
数据集或实体数据模型。
WCF 数据服务、WCF 服务或 Web 服务。 有关详细信息,请参阅 “如何:连接到服务中的数据”。
对象。 有关详细信息,请参阅 “绑定到 Visual Studio 中的对象”。
注释
在创建查阅表之前,必须存在两个相关的表或对象作为项目的数据源。
打开 WPF 设计器,并确保设计器包含一个容器,该容器是 数据源 窗口中项的有效放置目标。
有关有效拖放目标的详细信息,请参阅将 WPF 控件绑定到 Visual Studio 内的数据。
在 “数据 ”菜单上,单击“ 显示数据源 ”以打开 “数据源” 窗口。
展开 “数据源 ”窗口中的节点,直到可以看到父表或对象和相关子表或对象。
注释
相关的子表或对象是显示为父表或对象下的可扩展子节点的节点。
单击子节点的下拉列表菜单,然后选择“ 详细信息”。
展开子节点。
在子节点下,单击与子数据和父数据相关的项的下拉列表菜单。 (在前面的示例中,这是 CustomerID 节点。选择支持查找绑定的下列控件类型之一:
ComboBox
ListBox
ListView
注释
如果 ListBox 或 ListView 控件未显示在列表中,则可以将这些控件添加到列表中。 有关信息,请参阅 设置从数据源窗口拖动时要创建的控件。
派生自 Selector的任何自定义控件。
注释
有关如何将自定义控件添加到可以在 “数据源 ”窗口中为项选择的控件列表的信息,请参阅 “向数据源”窗口添加自定义控件。
将子节点从 “数据源 ”窗口拖到 WPF 设计器中的容器上。 (在前面的示例中,子节点是 Orders 节点。
Visual Studio 生成 XAML,用于为拖动的每个项创建新的数据绑定控件。 XAML 还会将适用于子表或对象的新 CollectionViewSource 添加到拖放目标的资源。 对于某些数据源,Visual Studio 还会生成代码以将数据加载到表或对象中。 有关详细信息,请参阅将 WPF 控件绑定到 Visual Studio 中的数据。
将父节点从 “数据源” 窗口拖到之前创建的查找绑定控件上。 (在前面的示例中,父节点是 “客户” 节点)。
Visual Studio 在控件上设置一些属性来配置查找绑定。 下表列出了 Visual Studio 修改的属性。 如有必要,可以在 XAML 或 “属性” 窗口中更改这些属性。
资产 设置说明 ItemsSource 此属性指定用于获取控件中显示的数据的集合或绑定。 Visual Studio 将此属性设置为拖动到控件的父数据的 CollectionViewSource。 DisplayMemberPath 此属性指定控件中显示的数据项的路径。 Visual Studio 将此属性设置为父数据中具有字符串数据类型的主键之后的第一列或属性。
如果要在父数据中显示其他列或属性,请将此属性更改为其他属性的路径。SelectedValue Visual Studio 将此属性绑定到拖到设计器中的子数据的列或属性。 这是父数据的外键。 SelectedValuePath Visual Studio 将此属性设置为子数据(父数据的外键)的列或属性的路径。