Проблемы проектирования с .Net UserControl

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

Как мне заставить мои изменения в дизайне придерживаться ListView?

19.08.2008 04:42:31
3 ОТВЕТА
РЕШЕНИЕ

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

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

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

6
21.08.2008 23:40:14

Просто, чтобы я понял, ты сделал что-то подобное, верно?

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

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

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

0
19.08.2008 04:44:46

Фредрик прав, в основном, когда вам нужно разрешить конструктору сохранить свойство на странице, чтобы его можно было создать во время выполнения. Есть только один способ сделать это - записать его значения на страницу ASPX, которая затем выбирается средой выполнения.

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

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

1
23.05.2017 10:27:42