我有不同的組自定義的WinForms控制所有派生從控制如:如何在不同類型的類型上調用共享成員?
CalculatorPanel, GraphPanel, DisplayPanel, etc : Control
我用一個單一的形式來顯示根據用戶想要看看這些集合中的一個或多個。
他們都擁有一個名爲成員:
Input
其中類型是不同的,例如:
CalculatorInput, GraphInput, DisplayInput, etc.
如何將它們存儲在一個列表或者一些其他集合在那裏我可以打電話Input屬性沒有任何問題?
我應該爲每個接口使用一個通用接口嗎?那麼它必須是通用的。我將如何指定類型?
現在,我使用這樣的添加/刪除控件:
Panels = Dictionary <Enum, Control> ...
Panels.Add (PanelType.Calculator, new CalculatorInput().Controls);
...
所以後來我可以說:
Form.Add/RemoveControls (Panels[PanelType.Calculator])
,但我會如何設置自己的輸入屬性,當我需要在運行。因此,如果用戶切換到GraphPanel,我希望能夠在將其控件添加到窗體後將其設置爲輸入。
是否有設計模式或技術來解決這個問題?
編輯:分別輸入類型(沒有方法)的性質如下:
CalculatorInput:
.Result
.LastOperation
...
GraphInput:
.Result
.SelectedNode
...
DisplayInput:
.Result
.CurrentColor
...
基本上這些輸入都只是類型被綁定到適當的用戶界面。因此,如果UI具有某些屬性,它們將綁定到這些輸入,這就是爲什麼當我分配新輸入時,UI將自動更新。
EDIT2:
因此,所有這些投入是獨立的沒有繼承等
但在適當的推出定義如下:
class CalculatorPanel
{
CalculatorInput Input
}
class GraphPanel
{
GraphInput Input
}
class DisplayPanel
{
DisplayInput Input
}
請您概述每個輸入類的屬性/方法嗎? – 2009-12-02 19:28:15
好的,我添加了成員。 – 2009-12-02 20:05:49
什麼版本的C#? – 2009-12-02 21:22:55