MVP - 基于业务逻辑显示/隐藏控件

时间:2011-05-31 13:46:13

标签: controls hide mvp show

最好的解决方法是什么?我在演示者中有一个使用switch语句填充各种文本框的方法,但也需要确保只有这些文本框可见,例如:

switch (operation.CalculationType) {
case CalcType.Type1:
    textbox1.Visible = true
    _view.TextBox1 = "some value";
    break;
case CalcType.Type2:
    textbox1.Visible = true;
    textbox2.Visible = true;
    _view.TextBox1 = "some value";
    _view.TextBox2 = "another value";
    break;

我不喜欢为表单上的每个控件公开Visible属性的想法(理论上这可能导致暴露各种属性,这对我来说似乎是错误的)。我的另一个想法是创建一个演示者调用的方法或事件,告诉表单显示/隐藏控件,但这意味着复制演示者中的逻辑。

那么做这件事的“正确”方式是什么?

由于

1 个答案:

答案 0 :(得分:0)

如果变量_view不是接口,则应将其设为1,实现它,然后添加一个或多个方法来设置哪些文本框可见。通过这种方式,您可以在代码中清楚地了解您要执行的操作,而不是与特定的表单实现相关联。

Inteface IFormView
   Sub DisplayType1
   Sub DisplayType2
   ....
End Interface