1) 为两个表设置一个 BindingSource。
BindingSource bsGroup = new BindingSource();
BindingSource bsUser = new BindingSource();
bsGroup.DataSource = MyDataSet.Tables["Group"];
bsUser.DataSource = MyDataSet.Tables["User"];
2) 设置您的组合和网格数据源。
MyCombo.DataSource = bsGroup;
MyCombo.DisplayMember = "GroupName"; // whatever your ColumnName is
MyCombo.ValueMember = "GroupID";
MyGrid.DataSource = bsUser;
3) 为 Combo 设置 SelectedIndexChanged 事件,并使用它来更改 bsUser 绑定源上的过滤器。
MyCombo.SelectedIndexChanged += new System.EventHandler(MyCombo_SelectedIndexChanged);
private void MyCombo_SelectedIndexChanged(object sender, System.EventArgs e)
{
// this will depend on what your column names are, obviously
string filter = string.Format("GroupID = {0}", MyCombo.SelectedValue);
bsUser.Filter = filter;
}
这工作得很好......取自这里。
(是的,我也在 MSDN 上发布了这个,因为我很着急)