我正在编写代码,最终使用数据绑定将数据从远程数据库提取到DataGridView中。我目前正在创建代码以使用CSV文件和BindingList作为测试。
我想在我的表单上显示一个显示数据库上次更新的显示。我目前在我的BindingList上使用ListChanged事件来更新"最后一次数据库更新"显示。
ListChanged事件似乎只是在最初填充数据库后连接它才会触发。这是我的类中扩展DataGridView的一些代码:
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
}
我希望延迟更新,因为列表最初是填充的。任何人都可以想到为什么这不起作用?
非常感谢。
答案 0 :(得分:1)
该行
Data = CsvTest.ParseCsv("test.csv");
将覆盖您Data
变量的内容。之前设置的任何值(例如Data.ListChanged
)都属于旧的BindingList
对象。在您设置之前,您的新BindingList
对象没有值。
如果您想在ParseCsv
之前设置值,则必须清除BindingList
中的Data
,然后添加ParseCsv
中的所有项目。