0

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

我使用 2 个 DataAdapter 填充数据集(每个表一个)

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

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

我如何使用绑定来做到这一点?是否有可能或者我应该捕获选择更改事件并“手动”过滤网格(当前网格显示表格中的所有电子邮件)。

4

2 回答 2

0

如果您有一个包含所有电子邮件的集合,那么您可以尝试让ItemsSource您的网格成为实现ICollectionView接口的对象 - 这允许您过滤、排序和分组您的集合......

可以通过调用获取实现该接口的对象

var view = CollectionViewSource.GetDefaultView(myList);
于 2010-06-18T10:43:33.617 回答
0

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

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

Class User
{
    UserId, UserName, List<Email> that user has
}

您可以创建一个List<User>和一个SelectedUser将绑定到 UI 元素的属性。

网格将被绑定到SelectedUser.Emails因此一切都被绑定并且流程可以正常工作。

于 2010-06-18T10:46:39.070 回答