我有以下按钮点击事件:
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();
}
当我通过点击按钮获得数据时,它工作正常。如果数据已更改,由于另一个程序更改数据,我再次单击此按钮刷新数据,它保持不变并且不显示更改的数据。
如果我重新启动应用程序,请单击该按钮,新数据将正确显示。
因此,我需要重新启动应用程序才能重新加载数据。
为什么按钮点击没有重新加载数据?
答案 0 :(得分:2)
我已经看到你必须在数据绑定中添加它才能重新绑定
dataGridView1.DataSource = _soureItemCollection;
dataGridView1.Databind();
答案 1 :(得分:0)
在此电话会议之前:var query = GetTrucks(_corporationId);
先放置此电话:
Entity.Refresh(RefreshMode.OverwriteCurrentValues,Entity.Trucks);