gpt4 book ai didi

c# - 为什么没有正确引发数据绑定(bind)完成事件?

转载 作者:行者123 更新时间:2023-11-30 21:47:32 26 4
gpt4 key购买 nike

在 Windows 窗体中,我使用数据 GridView 来显示一些数据。关键是只有在用户从日期选择器中选择月份后才会加载数据。

但是,一旦数据加载完毕,还需要做一些工作。在那种情况下,我已经实现了以下内容:

private void LoadGrid()
{
SourceTable.DataSource = _appService.LoadGridData(datePicker.Value);

Grid.DataBindingComplete += (sender, args) => {
MessageBox.Show('Work to be done');
}
}

private void ClickSearch(object sender, EventArgs e)
{
LoadGrid();
}

LoadGridData 方法仅使用存储库并返回一个包含数据的 IList

现在,当我点击按钮时,数据确实被加载了,但是 DataBindingComplete 方法没有被调用,因为没有显示消息框。

如果我再次单击该按钮,消息框会出现两次,即该方法被调用两次。如果我再次单击它,消息框会出现四次。

这里有点不对劲。那么我做错了什么以及如何修复它以便每次加载数据时都调用该方法并且只调用一次?

最佳答案

你需要添加

Grid.DataBindingComplete += (sender, args) => {
MessageBox.Show('Work to be done');
}

在设置数据源之前。

您可能还想考虑之后取消注册处理程序,或者将事件的注册放在更好的地方,例如表单加载事件,因为此时,每次您单击“搜索”时它都会添加一个新的 lambda按钮。

关于c# - 为什么没有正确引发数据绑定(bind)完成事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38319643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com