Сведения о вопросе

GANGST1ER

12:49, 11th August, 2020

Теги

c#   user-controls   .net-2.0    

Проблемы с дизайном .Чистый Элемент Управления UserControl

Просмотров: 413   Ответов: 3

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

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



  Сведения об ответе

nYU

21:06, 1st October, 2020

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

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

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


  Сведения об ответе

KOMP

23:23, 27th August, 2020

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

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

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


  Сведения об ответе

lesha

10:41, 5th August, 2020

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

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

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться