Wpf 将控件绑定到多个数据表

Wpf 将控件绑定到多个数据表,wpf,data-binding,wpf-controls,Wpf,Data Binding,Wpf Controls,这可能是一个奇怪的问题,但我还是要告诉我这是一个糟糕的数据库设计还是一个奇怪的情况 我的数据库中有两个表:ProductGroup和Parameters。一个包含根据其名称的各种产品组的信息,另一个包含可以应用于每个组的各种参数的信息,从而使每个组不同 现在要关联这两个表,有第三个表设置-GroupParameters,它有两个主键:parameterId和groupId,第三列是该组的参数值 现在我有一个屏幕,显示每个组及其参数值的信息。用户也应该能够编辑这些值。因此,我的问题是如何将存储在第

这可能是一个奇怪的问题,但我还是要告诉我这是一个糟糕的数据库设计还是一个奇怪的情况

我的数据库中有两个表:ProductGroup和Parameters。一个包含根据其名称的各种产品组的信息,另一个包含可以应用于每个组的各种参数的信息,从而使每个组不同

现在要关联这两个表,有第三个表设置-GroupParameters,它有两个主键:parameterId和groupId,第三列是该组的参数值

现在我有一个屏幕,显示每个组及其参数值的信息。用户也应该能够编辑这些值。因此,我的问题是如何将存储在第三个表中的这个值绑定到文本框。一般来说,在这种情况下,我将如何绑定控件

谢谢大家


编辑:我遗漏了一个重要的细节。我想使用DataSet和DataTable对象存储数据库中的内存数据,并将它们绑定到控件。原因与问题无关,但与我必须跟踪更改并能够根据用户的意愿撤销更改有关:

我在这里没有看到任何真正糟糕的设计

您可以为此构建UI,作为用户必须从绑定到ProductGroups集合的ListBox中选择的产品组列表,然后您可以拥有一个具有ListBox的用户控件、名为CurrentGroupId的属性和一些控件按钮,例如OK。将CurrentGroupId绑定到ProductGroups列表框的选定值。当CurrentGroupId更改或Parameters集合更改时,您应该使用LINQ或其他方法筛选此内部列表框项-基本上使用GroupParameter-s重新填充列表框,其中CurrentGroupId与所选ProductGroupId匹配。列表框项应为GroupParameter-s对象

现在最后:您的问题的答案是:您可以使用数据模板列表的项来创建一个文本框,该文本框绑定到Value属性,如下所示:“local”是您的命名空间:

<DataTemplate DataType={x:Type local:GroupParameter}>
  <StackPanel Orientation="Horizontal">
    <TextBox Text="{Binding Value, Mode=TwoWay}" />
    <Button Content="OK" Click=INSERT_YOUR_OK_HANDLER_HERE />
    <Button Content="Cancel" Click=INSERT_YOUR_CANCEL_HANDLER_HERE />
  </StackPanel>
</DataTemplate>
如果您需要为用户提供添加新参数的能力,您可以使用一些添加功能,在参数集合中使用当前选定的组id添加一个新条目。然后用户可以在您的用户控件中编辑刚刚添加的项


希望它能有所帮助,如果我很难理解我刚才说的话,我想我可以用代码来写大部分。请不要犹豫,请告诉我:

实际上,对我来说最好的办法就是使用。我没有意识到这一点——通过谷歌搜索查询自己学习很糟糕,即使用书学习会很慢。

我认为这篇文章有一个小错误,但可能会让人困惑。我想海报的意思是:我的数据库中有两个表:ProductGroup和Parameters。表的名称无关紧要。您可以将其称为Parameters或GroupParameters,该表包含可应用于ProductGroup表中所述组的参数的ID、名称和说明。您不能将其称为GroupParameters,因为这是与前两个表相关的第三个表的名称;对于试图回答这个问题的人来说,这只是一个小小的澄清。谢谢大家!我在原来的帖子中改变了这一点。