我已经实现了Microsoft的example,它处理两个表:Master和Detail。
我喜欢它如何根据主网格中的选择自动填充细节网格。但是,如果我想在主网格中选择多个类别(示例中的“客户”)并获取所有这些类别的详细信息,该怎么办?
实施此行为的最佳方法是什么?
答案 0 :(得分:0)
在这种情况下,您必须自己进行过滤。您不必将子网格绑定到关系,而是将其绑定到子表。然后,您将处理父网格的相应事件,然后根据选定的父记录过滤子数据。 E.g。
Private Sub parentDataGridView_SelectionChanged(sender As Object, e As EventArgs) Handles parentDataGridView.SelectionChanged
Dim parentIDs As New List(Of Object)
For Each selectedRow As DataGridViewRow In parentDataGridView.SelectedRows
Dim rowView = DirectCast(selectedRow.DataBoundItem, DataRowView)
parentIDs.Add(rowView("ParentID"))
Next
childBindingSource.Filter = If(parentIDs.Any(),
String.Format("ParentID IN ({0})",
String.Join(", ",
parentIDs)),
String.Empty)
End Sub