C# 级联数据绑定组合框

C# 级联数据绑定组合框,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,我是新来的,这是我的第一个问题,我事先为帖子中的任何信息、搜索或标签或任何东西的缺失道歉 我正在编写一个非常简单的winforms程序,我在级联组合框方面遇到了问题,很像country>Estate>City我是新手,我正在使用实体框架,我正在处理类似这样的问题: private void Form_CadAnimal_Load(object sender, EventArgs e) { using (DbClinvetEntities ctx = new DbClinvetEntiti

我是新来的,这是我的第一个问题,我事先为帖子中的任何信息、搜索或标签或任何东西的缺失道歉

我正在编写一个非常简单的winforms程序,我在级联组合框方面遇到了问题,很像country>Estate>City我是新手,我正在使用实体框架,我正在处理类似这样的问题:

private void Form_CadAnimal_Load(object sender, EventArgs e)
{
    using (DbClinvetEntities ctx = new DbClinvetEntities())
    {
        cmb_especie.DataSource = ctx.Especie;
        cmb_especie.DisplayMember = "Nome";
        cmb_especie.ValueMember = "EspecieID"
        cmb_raca.DataSource = ctx.raca;
        cmb_raca.DisplayMember = "Nome";
        cmb_raca.ValueMember = "RacaID";
    }
}
到目前为止一切都很好,我让他们被填充,我找到了无数关于这件事的帖子,但也许由于缺乏知识,我无法将它们与我的情况联系起来。 现在我要做的就是根据在cmb_Specie中选择的值筛选cmb_Raca,只是为了更清楚地说明Raca表在Specie表上有一个外键,就像您期望的country>estate一样

我发现有帖子在SelectedIndexChanged上生成了一个新的上下文,并完成了一个全新的绑定,但我想知道是否有一种方法可以在不进一步调用Db的情况下实现这一点,是否有任何方法可以在第一次访问后将对象列表脱机


抱歉,如果不清楚,我很乐意编辑此帖子,以便在必要时提供更多信息。

尝试使用SelectedIndex作为查询选择命令。您可以构建一个模块,用于与数据库对话,该数据库将SelectedIndex.ToString作为参数,以构建查询并基于此向表单填充数据。当组合框以这种方式使用时,它不一定必须是数据绑定的。

Winforms几乎是你能找到的自动化程度最低的UI库……你必须附加到一个事件并每次更新依赖表的数据源。问这个问题,但是我如何更新数据源?我曾尝试将DataView dv=combobox.DataSource等设置为DataView,但它总是返回null,尝试使用其他类型也没有成功。在您的代码中,您已经在更新数据源:cmb_specie.DataSource=ctx.specie…我可能在这里错了,因此注释而不是答案,但这应该可以做到。你也可以绑定到一个列表,并在其他SelectedItem发生更改时清除和重新填充列表。哦,现在我明白你的意思了,我必须手动跟踪项目并在事情发生时更新数据源,是吗?因此,我应该保留一些列表,并通过selectedIndex添加/删除,我只是希望有一种快速的方法来做到这一点,我认为这是一项每天都要做的任务,然后每次索引更改时,我都会调用do Db,或者至少我相信,我希望避免这种行为。感谢您的回复。您打算使用datagridview控件还是在组合框中填充这些内容?很抱歉,我说我对visual studio、c和所有这些都很陌生,我不确定如何使用datagridview解决这个问题,我希望使用两个文本框和组合框,但我愿意接受建议DataGridView控件可以在加载控件时加载一次,您可以将其排序设置为任意顺序,但它将填充数据集中的所有数据。否则,您将不得不在每次选择索引时询问信息,除非您希望在开始时花很长时间加载信息,因为它会填充许多列表,而且这似乎不太实际。