Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么不是';我的数据网格没有更新吗?_C#_Data Binding_Datagridview - Fatal编程技术网

C# 为什么不是';我的数据网格没有更新吗?

C# 为什么不是';我的数据网格没有更新吗?,c#,data-binding,datagridview,C#,Data Binding,Datagridview,我有一个对象,它的属性之一是列表。我想将datagrid绑定到该列表,这样当我向网格添加对象时,datagrid就会更新。我试过: myDataGrid.DataSource = myObject.MyList; 但是当我用新行更新数据源时,网格不会更新 然后我试着: myDataGrid.DataSource = myObject.MyList; myDataGrid.DataSource = null; myDataGrid.DataSource = myObject.MyList;

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

myDataGrid.DataSource = myObject.MyList;
但是当我用新行更新数据源时,网格不会更新

然后我试着:

myDataGrid.DataSource = myObject.MyList;
myDataGrid.DataSource = null;
myDataGrid.DataSource = myObject.MyList;
myDataGrid.DataBindings.Add(new Binding("DataSoruce",myObject,"MyList",false,DataSourceUpdateMode.OnPropertyChanged));
每次添加项目时调用上述代码。这导致在单击网格时出错(具体来说,索引-1没有数据,这与datagridview.get_current内部有关。尽管我没有单击-1行,但仍会发生这种情况)

于是我试着:

myDataGrid.DataSource = myObject.MyList;
myDataGrid.DataSource = null;
myDataGrid.DataSource = myObject.MyList;
myDataGrid.DataBindings.Add(new Binding("DataSoruce",myObject,"MyList",false,DataSourceUpdateMode.OnPropertyChanged));
这也没有反映更新,因此我添加了:

myDataGrid.DataBindings[0].ReadValue();

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

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

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

您似乎已经知道这一点,但如果可能,您希望在此处使用BindingList。任何像BindingList这样的列表函数的笨拙尝试都会比简单地将列表中的元素复制到BindingList要痛苦得多。

您似乎已经知道这一点,但如果可能的话,您希望使用BindingList。任何试图创建一个类似于BindingList的列表函数的笨拙尝试都会比简单地将列表中的元素复制到BindingList中要痛苦得多。

是的,发现有一个BindingList并意识到它与列表之间的区别是“突破时刻”。是的,发现有一个绑定列表,并认识到它与列表之间的区别,这就是“突破时刻”。