c# - Datagridview 不更新数据源
问题描述
我正在使用 Windows 窗体应用程序。我在表格上创建了列表,并在添加按钮上创建了新窗口。当新记录正在添加时,数据源正在更新,但 gridview 不显示最后添加的记录。为什么会这样?
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()
方法。
private void btn_save_Click(object sender, EventArgs e)
{
string selectedItem = cmbbx_companyType.SelectedItem.ToString();
WriteXML(selectedItem);
this.Close();
MainForm mainForm = new MainForm();
mainForm.BindCompanyData();
}
什么不见了?
解决方案
您的问题是您正在BindCompanyData();
使用代码在新创建的表单上运行:
MainForm mainForm = new MainForm();
mainForm.BindCompanyData();
您应该做的是在CompanyAddEdit
构造函数中请求MainForm form
参数并传递您在按钮中使用的当前表单。所以你的代码看起来像这样:
//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();
}
推荐阅读
- recursion - Prolog递归累加器
- json - Scala:使用 find() 或 filter() 根据多个键值读取地图的内部图
- jquery - 如何在vue中选中或未选中复选框时添加和删除css的类?
- sql - SQL 层次结构字符串列到 XML
- python - 将 python 循环转换为 Theano
- python - Keras:构造一个与给定张量具有相同批量大小的完整张量
- javascript - react-redux areStatesEqual 从不触发
- python - 为什么从 python 脚本编译的 .exe 无法连接到远程 ms 访问数据库?[HY024]
- mysql - 从控制台(例如 cmd.exe)运行时 mysql 和 mysqlsh 有什么区别?
- python - Scrapy 如何从 data-href 中获取值