无法获取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();
}

当我最初通过单击按钮获得数据时,它工作正常。如果数据发生了变化,因为另一个程序改变了数据,我再次点击这个按钮来刷新数据,它保持不变,不显示改变的数据。

如果我重新启动应用程序,点击按钮,新数据将正确显示。

所以,我需要重新启动应用程序来重新加载数据。

为什么点击按钮不重新加载数据?

无法获取datagridview来刷新数据

我已经看到你必须添加一个数据绑定来让它重新绑定

dataGridView1.DataSource = _soureItemCollection;
dataGridView1.Databind();

在此调用之前:var query = GetTrucks(_corporationId);将此放在首位:

Entity.Refresh(RefreshMode.OverwriteCurrentValues,Entity.Trucks);