2008-08-19 58 views
3

我已經創建了一個UserControl,其中包含一個ListView。 ListView可以通過屬性公開訪問。當我將UserControl放在窗體中並試圖通過屬性設計ListView時,ListView保持這種狀態,直到我再次編譯並恢復爲默認狀態。.Net UserControl的設計問題

如何讓我的設計更改爲堅持ListView

回答

6

您需要用DesignerSerializationVisibility屬性來裝飾ListView控件屬性,像這樣:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
public ListView MyListView { get { return this.listView1; } } 

這告訴設計師的代碼生成器輸出的代碼吧。

0

就這樣我清楚,你做了這樣的事情,對吧?

public ListView MyListView { get { return this.listView1; } } 

那麼你正在訪問(在設計時)你的UserControl的MyListView屬性?

我認爲如果您想要適當的設計時支持,您最好將ListView本身(返回原始UserControl)上的「Modifier」屬性更改爲Public - 這樣,您可以直接修改ListView UserControl。無論如何,我已經取得了成功。

1

Fredrik是正確的,基本上,當您需要啓用設計器持久屬性頁,以便它可以在運行時實例化。只有一種方法可以做到這一點,那就是將其值寫入ASPX頁面,然後由運行時選取。

否則,控件將每次都簡單地恢復到默認狀態。

始終牢記在頁面(及其內容)和代碼在ASP.NET中是完全獨立的,它們在運行時連接在一起。這意味着您不像WinForms應用程序那樣獲得良好的代碼隱藏設計器支持(其中表單是對象的實例)。