Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top