Pregunta

He creado un UserControl que tiene un ListView en eso.ListView es de acceso público a través de una propiedad.Cuando coloco el UserControl en un formulario e intento diseñar el ListView aunque la propiedad, la ListView permanece así hasta que compilo nuevamente y vuelve al estado predeterminado.

¿Cómo consigo que mis cambios de diseño se mantengan durante el ListView?

¿Fue útil?

Solución

Debes decorar la propiedad ListView con el atributo DesignerSerializationVisibility, así:

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

Esto le dice al generador de código del diseñador que genere código.

Otros consejos

Fredrik es correcto, básicamente, cuando necesita permitir que el diseñador persista la propiedad en la página para que se pueda crear una instancia de ella en tiempo de ejecución.Sólo hay una manera de hacer esto, y es escribir sus valores en la página ASPX, que luego es recogida por el tiempo de ejecución.

De lo contrario, el control simplemente volverá a su estado predeterminado cada vez.

Tenga siempre presente que la página (y su contenido) y el código están completamente separados en ASP.NET, están conectados en tiempo de ejecución.Esto significa que no obtienes el buen soporte del diseñador de código subyacente como lo haces en una aplicación WinForms (donde el formulario es una instancia de un objeto).

Para que quede claro, has hecho algo como esto, ¿verdad?

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

Entonces, ¿está accediendo (en tiempo de diseño) a la propiedad MyListView en su UserControl?

Creo que si desea un soporte adecuado en tiempo de diseño, es mejor que cambie la propiedad "Modificador" en el propio ListView (de nuevo en el UserControl original) a Público; de esa manera puede modificar ListView directamente en instancias del UserControl.He tenido éxito haciendo eso de todos modos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top