c#实体框架在从另一个表单添加数据后刷新组合框

时间:2016-06-23 11:06:26

标签: c# entity-framework combobox visual-studio-2015

我使用此代码将数据从数据库加载到组合框

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
 comboBox1.DataSource = Dbcontext.Products.Tolist();

 comboBox1.DisplayMember = "ProductName";
 comboBox1.ValueMember = "ID"; 

}

当我在同一个项目中从另一个windowsForm添加新产品时,当我回来从组合框中选择值时,我无法找到它。而这次刷新不会起作用

privatevoid ComboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
    {         ComboBox1.Refresh()     

   }

我该怎么做?谢谢

3 个答案:

答案 0 :(得分:1)

AutoPostback属性设置为true将导致它回发

您需要确保仅在{!ispostback)

时加载dropdownlist

ListControl.AutoPostBack Property

答案 1 :(得分:0)

您可以尝试使用ComboBox1.UpdateLayout()方法。

答案 2 :(得分:0)

当您从该屏幕移动到此屏幕时,您需要重新填充comboBox1。

您的组合框数据源不包含新添加的项目。 " Dbcontext.Products.Tolist()"填充当前产品但不绑定以获取新添加的产品。

您需要手动执行该操作。 像这样在当前窗口上调用方法

void RefreshData()
{
 comboBox1.DataSource = null;
 comboBox1.DataSource = Dbcontext.Products.Tolist();
}