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





Просто чтобы я понял, ты сделал что-то вроде этого, верно?
public ListView MyListView { get { return this.listView1; } }
Итак, вы получаете доступ (во время разработки) к свойству MyListView в своем UserControl?
Я думаю, если вам нужна надлежащая поддержка во время разработки, вам лучше изменить свойство «Modifier» в самом ListView (обратно в исходный UserControl) на Public - таким образом вы можете изменить ListView непосредственно на экземплярах UserControl. В любом случае я добился успеха.
Вам нужно украсить свойство ListView атрибутом DesignerSerializationVisibility, например:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ListView MyListView { get { return this.listView1; } }
Это сообщает генератору кода разработчика, что нужно вывести для него код.
Фредрик прав, в основном, когда вам нужно разрешить конструктору сохранять свойство на странице, чтобы его можно было создать во время выполнения. Есть только один способ сделать это - записать его значения на страницу ASPX, которая затем будет обработана средой выполнения.
В противном случае элемент управления будет каждый раз просто возвращаться в состояние по умолчанию.
Всегда помните, что страница (и ее содержимое) и код полностью разделены в ASP.NET, они подключаются во время выполнения. Это означает, что вы не получите хорошей поддержки конструктора кода программной части, как в приложении WinForms (где форма является экземпляром объекта).