【发布时间】:2013-05-13 18:48:42
【问题描述】:
我有一个 UserControl,我在其中放置了一个下拉 ComboBox 和一个 DataGridView。
ComboBox 是一个过滤器,其中包含取决于我的 DataGridView 中的数据的项目。 DataGridView 中的对象有一个名为 ProductType 的属性。对于 DataGridView 中的每个 ProductType,ComboBox 过滤器将其添加到过滤器选项中。
发生以下事件时需要刷新DataGridView:
- DataGridView_Load
- ComboBox_SelectedItemChanged
- RefreshButton_Clicked
当我刷新数据网格时,ComboBox 会重新初始化,因为网格中的 ProductType 列表可能已经改变。
问题是当我点击刷新按钮时,刷新函数会被多次调用。 点击刷新按钮会触发 RefreshButton_Clicked。刷新重新初始化组合框。重新初始化 ComboBox 会触发 ComboBox_SelectedItemChanged,因为所选项目不再相同。然后我必须把在刷新之前选择的项目,所以另一个 ComboBox_SelectedItemChanged 被触发。等等。
有没有办法在我刷新并恢复之后暂停事件侦听器?
【问题讨论】: