2011-05-31 70 views
0

要做到這一點的最佳方式是什麼?我在使用填充switch語句各種文本框演示的方法,還需要確保只有這些文本框是可見的,例如:MVP - 顯示/隱藏基於業務邏輯的控件

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屬性表單上的每個控件(理論上這可能會導致暴露各種屬性,這只是我看來不對)。我的另一個想法是創建一個演示者調用的方法或事件,告訴表單顯示/隱藏控件,但這種方式複製了演示者中的邏輯。

那麼做這件事的「正確」方式是什麼?

感謝

回答

0

如果變量_view是不是你應該讓一個,執行它,然後添加一種或多種方法是設置文本框哪些是可見的接口。通過這種方式,您可以在代碼中清楚您正在嘗試執行的操作,而不是與特定的表單實現綁定。

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

變量_view確實是一個接口。在我的示例中對textbox1的引用僅僅是爲了說明我在表單中要做的事情。所以基本上我應該只是在需要做任何基於業務邏輯的佈局邏輯(例如顯示/隱藏/啓用/禁用控件)時創建一些方法?很明顯,我猜想,我只是想確保我沒有錯過更聰明的東西。 :) 謝謝。 – Tom 2011-06-01 08:33:57