2008-08-19 3 views
3

Я создал UserControl, в котором есть ListView. ListView является общедоступным, хотя свойство. Когда я помещаю UserControl в форму и пытаюсь создать ListView, хотя свойство, ListView остается таким образом, пока я не скомпилирую его снова, и он вернется к состоянию по умолчанию.Проблемы с дизайном .Net UserControl

Как я могу изменить свои изменения дизайна для ListView?

ответ

6

Вам нужно украсить свойство ListView с атрибутом DesignerSerializationVisibility, например, так:

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

Это говорит генератор кода конструктора для вывода кода для него.

0

Просто я понимаю, что вы сделали что-то вроде этого, верно?

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

Итак, вы получаете (во время разработки) свойство MyListView на вашем UserControl?

Я думаю, что если вам нужна правильная поддержка времени разработки, вам лучше сменить свойство «Модификатор» на самом ListView (обратно на исходный UserControl) на Public - таким образом вы можете изменить ListView непосредственно на экземплярах UserControl. В любом случае, я добился успеха.

1

Fredrik Правильно, в основном, когда вам нужно, чтобы конструктор сохранял свойство на странице, чтобы его можно было создать во время выполнения. Существует только один способ сделать это, и это нужно записать его значения на страницу ASPX, которая затем загружается во время выполнения.

В противном случае элемент управления будет просто возвращаться к состоянию по умолчанию каждый раз.

Всегда помните, что страница (и ее содержимое) и код полностью разделены в ASP.NET, они подключены во время выполнения. Это означает, что вы не получаете красивую поддержку дизайнера кода, как в приложении WinForms (где форма является экземпляром объекта).