Я создал пользовательский элемент управления WinForms, представляющий собой набор из пяти каскадных полей со списком - пользователь выбирает что-то из верхней комбинации, которая затем заполняет и включает вторую комбинацию и так далее. Если в только что включенном комбо есть только одна опция, я автоматически выбираю ее, в результате чего под ней становится активной. Следовательно, одно пользовательское действие может пройти через несколько дополнительных комбинаций.
Я поднимаю событие, специфичное для каждого поля со списком. Я также хочу поднять итоговое событие в любое время что-нибудь изменения. Например, пользователь выбирает опцию в верхней комбо. Это вызывает событие Combo1Changed. Если это автоматически вызывает выбор во втором комбо, я бы также вызвал событие Combo2Changed. Когда все это будет сделано, я хочу вызвать одно событие SomethingChanged.
Прямо сейчас я поднимаю события ComboXChanged и SomethingChanged каждый раз, когда меняется комбинация. Но поскольку один выбор может каскадно объединить все пять комбинаций, это может привести к возникновению десятков событий.
Я не могу понять, как определить, когда каскад закончился, чтобы я мог инициировать события только один раз. Есть ли хитрый трюк или шаблон для кодирования такого рода вещей?