1

当我第一次尝试在 WPF 中做某事时,我对 WPF DataBinding 感到困惑。然后我在 MSDN 上彻底研究了下一个示例:http: //msdn.microsoft.com/en-us/library/ms771319 (v=VS.90).aspx

现在,我非常了解如何将 Master-Detail 范例用于从一个源(一个表)获取数据的表单 - 用于主部分和详细部分。我的意思是,例如,我有一个包含数据的网格,在网格下方我有一些包含当前行详细数据的字段。

但是,如果详细数据来自不同但相关的表,该怎么办?例如:您有一个“用户”表,其中包含“id”和“名称”列。您还有另一个表“图片”,其中包含“id”、“文件名”、“UserId”等列。现在,使用主从范式,您必须构建一个表单。每次在 Master 中选择一行时,您都应该在 Details 中获得所有相关图片。

正确的方法是什么?你能给我举个例子吗?

4

1 回答 1

3

我不确定您如何访问您的表格。但我喜欢使用实体框架。看来您的“图片”表中有一个指向“用户”主键的外键关系。

使用 Entity Framework 4 和 .Net 4(在我写这篇文章时都在 RC 中),事情非常顺利。您只需根据当前数据库生成模型。这几乎可以为您将所有数据库记录映射到类。您的每个表都将是模型中的一个集合(我将其称为上下文),因此您可以通过以下方式访问它们:

上下文.用户和上下文.图片

context.Users 将自动拥有一个名为 Pictures 的“导航属性”,它只是具有指向该用户的外键的特定图片的集合。

因此您可以将您的主“网格”绑定到 context.Users 以显示您喜欢的有关用户的任何信息。然后在您的详细信息部分中,您可以将您的详细信息“列表”绑定到:(grid.selectedRow as User).Pictures

以上只是伪代码,希望它可以让您朝着正确的方向开始。

如果您不想使用实体框架,如果您可以提供有关如何从数据库访问信息的更多信息,我可能能够提供更多关于如何数据绑定您的主细节场景的具体示例。

于 2010-03-11T18:15:36.150 回答