我创建了一个包含2个表的数据集: 用户(userID,UserName,其他用户详细信息) 电子邮件(Id,UserId,UserEmail)
我使用2个DataAdapters(每个表一个)填充数据集
我有一个列表框,一些文本框和一个网格。 listbox获取所有用户,少数文本框在列表框中选中时显示用户详细信息(这很容易b / c它们都绑定到同一个表)。
网格应显示所选用户的电子邮件地址。
如何使用绑定进行操作?是否有可能或者我应该抓住选择更改事件并“手动”过滤网格(当前网格显示表格中的所有电子邮件)。
答案 0 :(得分:0)
如果您有一个包含所有电子邮件的集合,那么您可以尝试将网格的ItemsSource
视为实现ICollectionView接口的对象 - 这样您就可以对其进行过滤,排序和将您的收藏分组......
您可以通过调用
来获取实现此接口的对象var view = CollectionViewSource.GetDefaultView(myList);
答案 1 :(得分:0)
您可以拥有一个名为SelectedUser的属性,并将其绑定到ListBox的SelectedItem。在属性的setter中,您可以过滤绑定到网格的电子邮件列表。
但是从长远来看,你可以使用VS中提供的一些ORM工具或Linq-to-sql来创建表格中的模型,这将创建模型及其关系。因此,当你有这样的东西时
Class User
{
UserId, UserName, List<Email> that user has
}
您可以创建一个绑定到UI元素的List<User>
和SelectedUser
属性。
网格将绑定到SelectedUser.Emails
因此,一切都已绑定,流程也能正常工作。