我填充GridView.DataSource從的EntityFramework型號:如何刷新WinForms DataGridView上的數據源?
gwTimeLog.DataSource = _entities.TimeLogs;
當一個新的行添加到_entities,我嘗試更新的網格(使用與上述相同的語句嘗試,將其設置爲空,則回到_entities.TimeLogs等等),但網格根本不會更新。即使_entities.TimeLogs實際上包含新行。
我錯過了什麼?
我填充GridView.DataSource從的EntityFramework型號:如何刷新WinForms DataGridView上的數據源?
gwTimeLog.DataSource = _entities.TimeLogs;
當一個新的行添加到_entities,我嘗試更新的網格(使用與上述相同的語句嘗試,將其設置爲空,則回到_entities.TimeLogs等等),但網格根本不會更新。即使_entities.TimeLogs實際上包含新行。
我錯過了什麼?
答案是已經在GridView連接的BindingList,而不是名單。
OLD ANSWER:你嘗試過調用GridView.DataBind()嗎?
Woops,我以爲這是一個WebForms DataGrid。
如果您使用WinForms,您可能需要查看BindingSource類。綁定到類,而不是直接到你的列表會提供更新通知,等
下面的代碼對我的作品:
List<Person> names = new List<Person>();
names.Add(new Person(){
FirstName = "Steve",
LastName = "Jobs"
});
names.Add(new Person()
{
FirstName = "Bill",
LastName = "Gates"
});
BindingSource source = new BindingSource();
source.DataSource = names;
dataGridView1.DataSource = source;
names.Add(new Person()
{
FirstName = "Steve",
LastName = "Balmer"
});
source.ResetBindings(false);
grid.EndEdit();
BindingSource.EndEdit();
_entities = new dbEntities();
firmeBindingSource.DataSource=_entities.TimeLogs;
歡迎來到計算器!提供示例代碼的簡短描述以提高發布準確性總是更好:) – 2012-10-28 00:47:46
的WinForms,ASP.NET不是我 – AngryHacker 2010-01-06 18:50:06
錯誤。修訂。 – hackerhasid 2010-01-06 18:53:08
BindingSource @ MSDN:http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.aspx – hackerhasid 2010-01-06 18:53:57