我已經創建了一個UserControl,其中包含一個ListView
。 ListView可以通過屬性公開訪問。當我將UserControl放在窗體中並試圖通過屬性設計ListView
時,ListView
保持這種狀態,直到我再次編譯並恢復爲默認狀態。.Net UserControl的設計問題
如何讓我的設計更改爲堅持ListView
?
我已經創建了一個UserControl,其中包含一個ListView
。 ListView可以通過屬性公開訪問。當我將UserControl放在窗體中並試圖通過屬性設計ListView
時,ListView
保持這種狀態,直到我再次編譯並恢復爲默認狀態。.Net UserControl的設計問題
如何讓我的設計更改爲堅持ListView
?
您需要用DesignerSerializationVisibility屬性來裝飾ListView控件屬性,像這樣:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ListView MyListView { get { return this.listView1; } }
這告訴設計師的代碼生成器輸出的代碼吧。
就這樣我清楚,你做了這樣的事情,對吧?
public ListView MyListView { get { return this.listView1; } }
那麼你正在訪問(在設計時)你的UserControl的MyListView屬性?
我認爲如果您想要適當的設計時支持,您最好將ListView本身(返回原始UserControl)上的「Modifier」屬性更改爲Public - 這樣,您可以直接修改ListView UserControl。無論如何,我已經取得了成功。
Fredrik是正確的,基本上,當您需要啓用設計器持久屬性頁,以便它可以在運行時實例化。只有一種方法可以做到這一點,那就是將其值寫入ASPX頁面,然後由運行時選取。
否則,控件將每次都簡單地恢復到默認狀態。
始終牢記在頁面(及其內容)和代碼在ASP.NET中是完全獨立的,它們在運行時連接在一起。這意味着您不像WinForms應用程序那樣獲得良好的代碼隱藏設計器支持(其中表單是對象的實例)。