如何刷新WinForms DataGridView上的DataSource?

时间:2010-01-06 18:44:20

标签: winforms entity-framework datagridview refresh

我从EntityFramework模型填充GridView.DataSource:

gwTimeLog.DataSource = _entities.TimeLogs;

当一个新行添加到_entities时,我尝试更新网格(尝试使用与上面相同的语句,将其设置为null,然后返回_entities.TimeLogs等...),但网格只是赢了不要更新。即使_entities.TimeLogs确实包含新行。

我错过了什么?

4 个答案:

答案 0 :(得分:12)

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);

答案 1 :(得分:6)

答案是让gridview连接到BindingList而不是List。

答案 2 :(得分:2)

这对我有用:

./dir1/subdir2/rpm1.rpm

答案 3 :(得分:-1)

 grid.EndEdit();
 BindingSource.EndEdit();
 _entities = new dbEntities();
 firmeBindingSource.DataSource=_entities.TimeLogs;