无法获取datagridview来刷新数据
本文关键字:刷新 数据 datagridview 获取 | 更新日期: 2023-09-27 18:17:10
我有以下按钮点击事件:
private void button_GetTrucks_Click(object sender, EventArgs e)
{
if (textBox_CompanyCode.Text.Length != 3)
{
_errorProvider.SetError(button_GetTrucks, "Invalid company code.");
return;
}
textBox_CompanyCode.Enabled = false;
button_GetTrucks.Enabled = false;
_corporationId = GetCorporationId(textBox_CompanyCode.Text);
if(_corporationId == Guid.Empty)
{
_errorProvider.SetError(button_GetTrucks, "Could not find company.");
return;
}
dataGridView1.DataSource = null;
_soureItemCollection = null;
textBox_CorporationId.Text = _corporationId.ToString();
var query = GetTrucks(_corporationId);
_soureItemCollection = new ObservableCollection<Truck>(query);
dataGridView1.DataSource = _soureItemCollection;
MakeDataGridViewPerty();
button_GetTrucks.Enabled = true;
textBox_CompanyCode.Enabled = true;
}
public static List<Truck> GetTrucks(Guid corporationId)
{
return (from trk in Entity.Trucks
where trk.CorporationId == corporationId
orderby trk.TruckNumber
select trk).ToList();
}
当我最初通过单击按钮获得数据时,它工作正常。如果数据发生了变化,因为另一个程序改变了数据,我再次点击这个按钮来刷新数据,它保持不变,不显示改变的数据。
如果我重新启动应用程序,点击按钮,新数据将正确显示。
所以,我需要重新启动应用程序来重新加载数据。
为什么点击按钮不重新加载数据?
我已经看到你必须添加一个数据绑定来让它重新绑定
dataGridView1.DataSource = _soureItemCollection;
dataGridView1.Databind();
在此调用之前:var query = GetTrucks(_corporationId);
将此放在首位:
Entity.Refresh(RefreshMode.OverwriteCurrentValues,Entity.Trucks);