首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BindingList ListChanged事件只有在填充数据后才会触发吗?

BindingList ListChanged事件只有在填充数据后才会触发吗?
EN

Stack Overflow用户
提问于 2014-09-22 13:00:59
回答 1查看 1.2K关注 0票数 0

我正在编写代码,最终使用数据绑定将数据从远程数据库拉到DataGridView中。我目前正在创建代码,以使用CSV文件和BindingList作为测试。

我希望在我的表单上显示上次更新数据库的时间。我目前在我的BindingList上使用ListChanged事件来更新"last database update“显示。

ListChanged事件似乎只有在最初填充数据库之后才会触发。下面是我的类中的一些扩展DataGridView的代码:

代码语言:javascript
复制
BindingList<CsvTest> Data = new BindingList<CsvTest>;

public void InitGrid()
{
    // Data.ListChanged += Data_ListChanged;  // Event never fires if this is here!
    Data = CsvTest.ParseCsv("test.csv");
    Data.ListChanged += Data_ListChanged;     // Working when it's here!
    this.DataSource = Data; // DataGridView DataSource
}

我希望我的延迟更新,因为列表最初是填充的。有没有人能想到这不起作用的原因?

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-06 21:18:36

这条线

代码语言:javascript
复制
Data = CsvTest.ParseCsv("test.csv");

将覆盖您的Data变量的内容。之前设置的任何值(例如Data.ListChanged)都将属于旧的BindingList对象。并且您的新BindingList对象在您设置它之前没有该值。

如果您希望在ParseCsv之前设置该值,则必须清除Data中的BindingList,然后添加ParseCsv中的所有项。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25966963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档