我创建了一个WinForms用户控件,它是一组五个级联组合框 - 用户从顶部组合中选择一些东西然后填充并启用第二个组合,依此类推。如果新启用的组合中只有一个选项,我会自动选择它,导致它下面的一个选项变为活动状态。因此,单个用户操作可以通过几个额外的组合波动。
我引发了一个特定于每个组合框的事件。我还希望在任何更改时随时提出最终事件。例如,用户从顶部组合中选择一个选项。这引发了Combo1Changed事件。如果这会自动导致第二个组合中的选择,那么我也会引发一个Combo2Changed事件。当它全部完成后,我想提出一个SomethingChanged事件。
现在,每次组合更改时,我都会引发ComboXChanged和SomethingChanged事件。但由于单个选择可以级联所有五个组合,因此可能会引发数十个事件。
我无法弄清楚如何确定级联何时完成,以便我可以只触发一次事件。是否有一个聪明的技巧或模式来编码这种东西?
答案 0 :(得分:0)
你可以通过一个类来解决这个问题,所有的组合框都将它们的选择更改事件传递给它,并引发一个包含其他事件的单个somethingchanged事件。
话虽如此,我会考虑重新设计那个ui。您是否考虑过使用树视图替换四个甚至所有下拉列表?这对用户来说更容易导航。