C#-在设计时设置数据绑定级联组合框
我有一个我认为很简单的问题,但经过大量的搜索,却找不到合适的例子。 简单地说,它是一个windows窗体应用程序,窗体上有两个数据绑定组合框,第一个用于“部门”,第二个用于“部分”。这些组合分别绑定到SQL数据库中的相应表。这些组合应该在用户从第一个组合中选择Department的情况下运行,这会导致第二个组合被过滤,以仅显示属于该部门的部分。(换句话说,这是典型的“级联”组合框问题)。 我最初的经验是使用Delphi,这是一个简单的设计时问题 然而,在C#中,我被卡住了,无法让它工作。我本以为这可以在设计时用SelectedIndexChanged事件背后的一些最小代码来完成。如果有人能给我一个基本的(表单、2个组合框、简单的数据源)示例,我将不胜感激 谢谢,詹姆斯C#-在设计时设置数据绑定级联组合框,c#,winforms,combobox,databound,C#,Winforms,Combobox,Databound,我有一个我认为很简单的问题,但经过大量的搜索,却找不到合适的例子。 简单地说,它是一个windows窗体应用程序,窗体上有两个数据绑定组合框,第一个用于“部门”,第二个用于“部分”。这些组合分别绑定到SQL数据库中的相应表。这些组合应该在用户从第一个组合中选择Department的情况下运行,这会导致第二个组合被过滤,以仅显示属于该部门的部分。(换句话说,这是典型的“级联”组合框问题)。 我最初的经验是使用Delphi,这是一个简单的设计时问题 然而,在C#中,我被卡住了,无法让它工作。我本以为
ComboBox cbDepartment = new ComboBox();
cbDepartment.Name = "cbDepartment";
cbDepartment.DataSource = dsDepartments;
cbDepartment.SelectedIndexChanged = new System.EventHandler(cbDepartment_SelectedIndexChanged);
private void cbDepartment_SelectedIndexChanged(object sender, System.EventArgs e) {
cbSection.DataSource = GetSection(cbDepartment.SelectedItem.Value);
}
您可以尝试上面的方法。您没有指定要绑定到的内容。我总是绑定到对象,所以我是这样做的: 在表单加载事件中:
ddlParent.DataSource = new BindingSource(myIEnumerable, null);
以及父组合框的事件处理程序:
private void ddlParent_SelectedIndexChanged(object sender, EventArgs e)
{
ddlChild.DataSource = new BindingSource((MyBoundType)ddlParent.SelectedItem, null);
}
我不知道在设计阶段有什么办法
您可能应该重写绑定到下拉列表的对象的ToString()方法,以控制组合框中显示的文本。如何检测设计时模式已经得到解答