2010-06-28 22 views
1

我在我的應用程序中有一個Winform。該表格包含許多控件 範圍從單選按鈕..到文本框到按鈕複選框。 其中一個要求是基於許可證模式的類型,某些 選項應顯示或隱藏或啓用或禁用。UI設計問題 - 控件隱藏和顯示

地說exmample的的applcation有兩種許可證模式: 1)正常 2)高級

在正常模式下只有少數的控制需要顯示的說只有3個文本框和2個按鈕。 和幾個複選框

在高級模式下,所有項目都需要顯示,只有少數複選框被允許可編輯。

目前我已經直接在代碼中完成它... 我相信在futire中會有更多的控件添加/刪除或製作成高級模式和東西!

我可以設計啓用和禁用以簡單的方式...可能是我得到的控制列表需要被禁用或基於XML文件啓用。 ?

對設計的任何幫助都是可觀的。

回答

0

我可能會試圖添加一個擴展屬性提供程序,因此您可以簡單地設置一個新的僞屬性出現在IDE屬性面板中。

一個類似的例子(使用「委託人」進行基於角色的支票)is shown here

但是,請注意,對於具有編程知識的人來說,繞過任何簡單操作都會非常容易。

0

我會使用兩個塊(像團體或其他)一個正常和一個高級,這樣你只能隱藏整個塊。 喜歡的東西:

+ Normal options ----------------------------+ 
| () check this to ..      | 
| Name: [     ]    | 
+--------------------------------------------+ 

+ Advanced options --------------------------+ 
| IP: [    ]      | 
| Host: [     ]    | 
| Mode: () ...        | 
|  () ...        | 
+--------------------------------------------+ 
1

如果您正在使用的用戶界面的控制,「顯示/隱藏」邏輯應保持在控制器(它是一個商業規則)。 我在控制器中使用'CanCurrentUserSeeEditButton'等屬性來確定控件是否應該可見,然後在UI中使用數據綁定將控件的'Visible'或'Enabled'屬性設置爲綁定到控制器邏輯(INotifyPropertyChanged爲所有控制器屬性實現)。

這意味着我可以在沒有UI的情況下對啓用/可見邏輯進行單元測試。

這不會幫助自動添加新控件,但可以更輕鬆地跟蹤每個新控件需要什麼。

0

我不確定這是否是一種好的做法,但如果模式數量不是很大,比如3或4,則可以創建多個用戶控件,然後在需要時將它們直接粘貼到主窗體中。

這種方式相當方便 - 您可以輕鬆地在單獨的控件中保留所有未來的更改。唯一的問題是在加載控件時傳輸數據,但也可以通過一些附加屬性或方法來解決。