台灣最大程式設計社群網站
線上人數
1716
 
會員總數:246135
討論主題:189718
歡迎您免費加入會員
討論區列表 >> ASP.NET >> [Server Control] List<xxxxxxx> 屬性怎麼限制不同基底類別
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[Server Control] List<xxxxxxx> 屬性怎麼限制不同基底類別
價值 : 300 QP  點閱數:232 回應數:2
樓主

愛唱歌的呆子
初學者
35 22
440 40
發送站內信

捐贈 VP 給 愛唱歌的呆子
請容我特別強調,我正在製作Server Control,不是usercontrol,不是ascx
----
開發上還算順利,但遇到一個瓶頸

為了方便說明,假設我正在設計的類別為 MyGroup
我希望有一個屬性,是 List<xxxxxxx>,而當然,希望使用端,可以透過intelisense列出可用的Control

例如,如果xxxxxx = WebControl,那幾乎可以列出全部的控制項了,可是這卻不是我要的,我希望項目可以被限制

在我目前專案的其他地方,我順利地用基底類別來當作限制條件

也就是 xxxxx = MyControlBase
然後



使用端就可以縮限為這兩種控制項,才允許被加入此Property

----

而我的困難點在,我希望能夠限制,只允許下面這兩個控制項加入此Property



請問我該如何設計才能達到我的目的呢?

----

先說我已經確認的內容
我其實設計了一個interface IMyHopeControl

然後上面的C和D改為
MyControlC : CompositControl, IMyHopeControl
MyControlD : TextBox, IMyHopeControl

然後把我的Property 型態改為 List<IMyHopeControl>

我發現,使用端,intellisense無法列出任何的控制項
然而如果我手打(我稱為硬key),其實runtime一切正常

但,我寫server control就是要給使用端方便的,要使用端硬key實在不能接受

----

有請前輩指點迷津

搜尋相關Tags的文章: [ C# ] , [ ASPX ] , [ Web ] , [ Server Control ] , [ Custom Control ] ,
本篇文章發表於2020-03-03 17:27
1樓
回應

香帥
檢舉此回應
建議參考
https://www.c-sharpcorner.com/uploadfile/sapnabeniwal/create-and-use-composite-custom-control-in-Asp-Net/
放入toolbox工具箱讓使用者直接拖拉使用,會更好用吧
本篇文章回覆於2020-03-04 00:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

愛唱歌的呆子
捐贈 VP 給 愛唱歌的呆子 檢舉此回應
謝謝您的回覆

使用滑鼠拖拉的方式不在考慮的範圍內,因為我寫工具的目的是加速開發,如果用拖拉的來做,恐怕比沒有工具還更慢。
這篇文章我有看了,年代有些久遠(9年前),但精神一樣,只不過本篇文章僅各種角度輕輕帶過,我需要針對List型態的屬性,做比較深入的運用
本篇文章回覆於2020-03-04 09:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.