【问题标题】:Why isn't my datagrid updating?为什么我的数据网格没有更新?
【发布时间】:2009-07-12 16:33:46
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# data-binding datagridview


    【解决方案1】:

    您似乎已经知道这一点,但如果可能的话,您想在这里使用 BindingList。任何笨拙地尝试创建像 BindingList 这样的 List 函数都会比简单地将元素从已经拥有的 List 复制到 BindingList 更痛苦。

    【讨论】:

    • 是的,发现那里有一个 BindingList 并意识到它与 List 之间的区别是那里的“突破时刻”。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多