ドロップダウン ComboBox と DataGridView を配置した UserControl があります。
ComboBox は、DataGridView のデータに応じてアイテムを含むフィルターです。DataGridView のオブジェクトには、ProductType というプロパティがあります。DataGridView のすべての ProductType について、ComboBox フィルターはそれをフィルター オプションに追加します。
次のイベントが発生した場合は、DataGridView を更新する必要があります。
- DataGridView_Load
- ComboBox_SelectedItemChanged
- RefreshButton_Clicked
グリッドに存在する ProductType のリストが変更された可能性があるため、データ グリッドを更新すると ComboBox が再初期化されます。
問題は、更新ボタンをクリックすると、更新機能が複数回呼び出されることです。更新ボタンをクリックすると、RefreshButton_Clicked がトリガーされます。リフレッシュにより ComboBox が再初期化されます。ComboBox を再初期化すると、選択されたアイテムが同じでなくなるため、ComboBox_SelectedItemChanged がトリガーされます。次に、更新前に選択されたアイテムを配置する必要があるため、別の ComboBox_SelectedItemChanged がトリガーされます。等。
更新中にイベントリスナーを一時停止して後で再開する方法はありますか?