C# Datagridview未更新数据源
我正在使用Windows窗体应用程序。我在表单上创建了列表,在添加按钮上创建了新窗口。添加新记录时,数据源正在更新,但gridview不显示上次添加的记录。为什么会这样C# Datagridview未更新数据源,c#,winforms,datagridview,C#,Winforms,Datagridview,我正在使用Windows窗体应用程序。我在表单上创建了列表,在添加按钮上创建了新窗口。添加新记录时,数据源正在更新,但gridview不显示上次添加的记录。为什么会这样 public MainForm() { InitializeComponent(); BindCompanyData(); } public void BindCompanyData() { List<CompanyListModel> co
public MainForm()
{
InitializeComponent();
BindCompanyData();
}
public void BindCompanyData()
{
List<CompanyListModel> companyListModel = new List<CompanyListModel>();
companyListModel = _obiClient.GetCompanies();
companyDataGrid.DataSource = null;
companyDataGrid.DataSource = companyListModel;
companyDataGrid.Refresh();
companyDataGrid.CellClick += new DataGridViewCellEventHandler(DatGridCell_Click);
}
private void btn_addCompany_Click(object sender, EventArgs e)
{
CompanyAddEdit companyAddEdit = new CompanyAddEdit();
companyAddEdit.ShowForm();
}
少了什么 您的问题是您正在运行
BindCompanyData()代码>在带有代码的新创建表单上:
MainForm mainForm = new MainForm();
mainForm.BindCompanyData();
您应该做的是在CompanyAddEdit
构造函数请求MainForm
参数中传递您在按钮中使用的当前表单。因此,您的代码如下所示:
//Inside CompanyAddEdit form
class CompanyAddEdit : Form
{
MainForm passedForm;
public CompanyAddEdit(MainForm form)
{
this.passedForm = form;
}
//other code
private void btn_save_Click(object sender, EventArgs e)
{
string selectedItem = cmbbx_companyType.SelectedItem.ToString();
WriteXML(selectedItem);
this.Close();
passedForm.BindCompanyData();
}
}
//Inside main form
private void btn_addCompany_Click(object sender, EventArgs e)
{
CompanyAddEdit companyAddEdit = new CompanyAddEdit(this);
companyAddEdit.ShowForm();
}
如果单击主窗口中的btn_addCompany,则会打开一个小窗口,在该窗口中应选择公司类型,并且该信息不会在主窗口中更新?那么我该怎么办?@SrustiThakkar很高兴我提供了帮助:)
//Inside CompanyAddEdit form
class CompanyAddEdit : Form
{
MainForm passedForm;
public CompanyAddEdit(MainForm form)
{
this.passedForm = form;
}
//other code
private void btn_save_Click(object sender, EventArgs e)
{
string selectedItem = cmbbx_companyType.SelectedItem.ToString();
WriteXML(selectedItem);
this.Close();
passedForm.BindCompanyData();
}
}
//Inside main form
private void btn_addCompany_Click(object sender, EventArgs e)
{
CompanyAddEdit companyAddEdit = new CompanyAddEdit(this);
companyAddEdit.ShowForm();
}