为什么我的数据网格没有更新?

时间:2009-07-12 16:33:46

标签: c# data-binding datagridview

我有一个对象,它的属性之一是List。我想将数据网格绑定到该列表,这样当我向网格添加对象时,datagrid会更新。我试过了:

myDataGrid.DataSource = myObject.MyList;

但是当我用新行更新数据源时,网格不会更新。

然后我尝试了:

myDataGrid.DataSource = null;
myDataGrid.DataSource = myObject.MyList;

每次添加项目时都要调用上面的代码。这在单击网格时导致错误(具体来说,索引-1没有数据,与内部的datagridview.get_current有关。尽管我没有点击第-1行,但仍然发生了。)

然后我尝试了:

myDataGrid.DataBindings.Add(new Binding("DataSoruce",myObject,"MyList",false,DataSourceUpdateMode.OnPropertyChanged));

这也没有反映出更新,所以我补充道:

myDataGrid.DataBindings[0].ReadValue();

每当我添加一个项目时,它也没有效果。我觉得我正在围绕这个问题的简单解决方案,但我似乎无法找到它。任何专业提示?

2 个答案:

答案 0 :(得分:1)

您似乎已经知道这一点,但是如果可能的话,您想要使用BindingList。任何使用像BindingList这样的List函数的hamfisted尝试只会比简单地将你已经拥有的List中的元素复制到BindingList要痛苦得多。

答案 1 :(得分:0)

如果我将我的类型从List更改为BindingList,则所有问题都会消失,并且网格会按预期自动更新。