在事件链接时,删除顺序依赖和冗余的干净方法是什么?

时间:2011-08-24 22:23:00

标签: c# winforms oop events

假设您有一个包含3个字段的对话框。

  • 案例1.输入字段1将默认字段2和字段3 (eventHandler1)
  • 案例2.输入字段2将默认字段3 (eventHandler2)
  • 案例3.输入字段3不会默认任何内容。

这有两个问题:

  1. 冗余:无需额外工作,即eventHandler1 触发eventHandler2。在这个玩具示例中,这不是问题。 但是将场景扩展到更多的字段和w / o 照顾,开销会变得很大。

  2. 顺序依赖:我认为字段3将默认使用eventHandler2。 但在任何一种情况下;有时,eventHandler1的默认值可能是 正确。其他时候,eventHandler2的默认值可能是正确的。

  3. 在C#中是否有一种干净,结构化的处理方式,需要处理大量的状态?

1 个答案:

答案 0 :(得分:2)

好的,您需要做的是在winforms应用中分离您的图层。设计一个类来完成确定哪些字段影响哪些其他字段的工作。此类中的每个属性都将使用属性设置器中的自定义代码来修改依赖属性,这些属性又会向窗口发送其内容已更改的信号。

“View”(类似View)类将是第一个类的容器,并处理输入事件,从第二个类调用方法来处理结果。最后,当从其他类命令这样做时,它将更新其他字段。

旧的,错误的答案在这里(没有抓住Winforms标签,愚蠢的我

  

最简单的答案是良好的View-Model和View分离,但是   没有代码示例,很难确定MVVM是否合适。

     

所以你的View xaml将有三个定义(四个,十个,   无论如何),每个字段都数据绑定到ViewModel中的属性。

     

每个属性的setter将处理设置的逻辑   其他属性中的相关值。每个属性都设置好了   应该在更改时通知,UI将不再更新   你的工作。

     

更少耦合;更有条理的。