Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用数据集中的两个表实现主细节(wpf)_Wpf_Master Detail - Fatal编程技术网

使用数据集中的两个表实现主细节(wpf)

使用数据集中的两个表实现主细节(wpf),wpf,master-detail,Wpf,Master Detail,我创建了一个包含两个表的数据集: 用户用户ID、用户名、其他用户详细信息 电子邮件Id,用户Id,用户电子邮件 我使用2个数据适配器填充数据集,每个表一个 我有一个列表框,几个文本框和一个网格。 listbox获取所有用户,在列表框中选择时,少数文本框显示用户详细信息这很容易b/c它们都绑定到同一个表 网格应显示所选用户的电子邮件地址 我如何使用绑定来实现它?是否可能或是否应该捕获选择更改事件并手动过滤网格当前网格显示表中的所有电子邮件。如果您有一个包含所有电子邮件的集合,那么您可以尝试将网格的

我创建了一个包含两个表的数据集: 用户用户ID、用户名、其他用户详细信息 电子邮件Id,用户Id,用户电子邮件

我使用2个数据适配器填充数据集,每个表一个

我有一个列表框,几个文本框和一个网格。 listbox获取所有用户,在列表框中选择时,少数文本框显示用户详细信息这很容易b/c它们都绑定到同一个表

网格应显示所选用户的电子邮件地址


我如何使用绑定来实现它?是否可能或是否应该捕获选择更改事件并手动过滤网格当前网格显示表中的所有电子邮件。

如果您有一个包含所有电子邮件的集合,那么您可以尝试将网格的ItemsSource设置为实现接口的对象-这允许您进行过滤,对您的收藏进行排序和分组

您可以通过调用

var view = CollectionViewSource.GetDefaultView(myList);

您可以拥有一个名为SelectedUser的属性,并将其绑定到ListBox的SelectedItem。在属性的setter中,可以过滤绑定到网格的电子邮件列表

但从长远来看,您可以使用VS中提供的一些ORM工具或Linq to sql从表中创建模型,这些工具将创建模型及其关系。因此,当你将有这样的东西

Class User
{
    UserId, UserName, List<Email> that user has
}
您可以创建一个列表和一个SelectedUser属性,该属性将绑定到UI元素

网格将绑定到SelectedUser.Emails,因此所有内容都将绑定,流程将正常工作