1

我创建了一个 WinForms 用户控件,它是一组五个级联组合框 - 用户从顶部组合中选择某些内容,然后填充并启用第二个组合,依此类推。如果新启用的组合中只有一个选项,我会自动选择它,使其下方的选项变为活动状态。因此,单个用户操作可以通过几个额外的组合产生涟漪效应。

我提出了一个特定于每个组合框的事件。我还想在任何时候发生任何变化时提出最终事件。例如,用户从顶部组合中选择一个选项。这会引发 Combo1Changed 事件。如果这会自动导致第二个组合中的选择,那么我也会引发一个 Combo2Changed 事件。完成后,我想引发一个SomethingChanged 事件。

现在,每次组合更改时,我都会引发 ComboXChanged 和 SomethingChanged 事件。但由于单个选择可以级联所有五个组合,因此可能会引发数十个事件。

我不知道如何确定级联何时完成,以便我可以只触发一次事件。有没有聪明的技巧或模式来编码这种东西?

4

1 回答 1

0

你可以通过一个类来解决这个问题,所有组合框都将它们的选择更改事件传递给该类,并引发一个封装其他事件的 somethingchanged 事件。

话虽如此,我会考虑重新设计该 ui。您是否考虑过用树状视图替换四个甚至所有这些下拉列表?这对用户来说会更容易导航。

于 2010-07-31T01:06:13.017 回答