【发布时间】:2014-07-25 08:10:54
【问题描述】:
我有一个事件,每当我的列表中的项目发生更改时就会触发该事件,并且当触发此事件时,我会调用一个方法来处理此列表。当列表中有 5 个新项目时,我的方法被调用 5 次,foreach 新元素,但我只需要处理最后一个事件。我该如何解决这个问题?
MyObject.ListItemsChanged += RefreshElementsInUI;
然后在方法中:
private void RefreshElementsInUI(object sender, EventArgs e)
{
var listItems = getElementsForCommunication(communication);
ClearElementsInUi();
foreach ( var element in listItems )
addElementToMyControl(element);
}
如果我的通讯中有 5 个新项目,ListItemsChanged 事件会被触发 5 次,但我只需要最后一个事件,因为我不必做同样的工作大约 5 次
希望这会有所帮助
【问题讨论】:
-
提供一些代码会真的有帮助
-
您现在如何添加到列表中?你是如何提出这些事件的?在我们提供帮助之前,请告诉我们有关您的代码的更多信息。
-
添加了我的一些代码
-
您必须实现
BeginUpdate()/EndUpdate()架构,就像在许多基于集合的控件中所做的那样,将控件重绘推迟到调用EndUpdate()。
标签: c# events event-handling eventhandler