2008-08-19 6 views
3

J'ai créé un UserControl qui contient un ListView. Le ListView est accessible au public si une propriété. Lorsque je mets le UserControl dans un formulaire et que j'essaie de concevoir le ListView par le biais de la propriété, le ListView reste ainsi jusqu'à ce que je compile à nouveau et qu'il revienne à l'état par défaut.Problèmes de conception avec .Net UserControl

Comment puis-je faire en sorte que mes modifications de conception respectent le ListView?

Répondre

6

Vous devez décorer la propriété ListView avec l'attribut DesignerSerializationVisibility, comme ceci:

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

Ceci indique le générateur de code du concepteur de code de sortie pour elle.

0

Juste pour être clair, vous avez fait quelque chose comme ça, n'est-ce pas?

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

Alors vous accédez (au moment du design) à la propriété MyListView sur votre UserControl? Je pense que si vous voulez un bon support au moment de la conception, il vaut mieux changer la propriété "Modifier" sur ListView lui-même (retour sur le UserControl d'origine) en Public - de cette façon vous pouvez modifier ListView directement sur les instances de UserControl J'ai réussi à faire ça de toute façon.

1

Fredrik est correct, fondamentalement, lorsque vous devez permettre au concepteur de conserver la propriété à la page afin qu'il puisse être instancié lors de l'exécution. Il n'y a qu'un moyen de le faire, c'est d'écrire ses valeurs sur la page ASPX, qui est ensuite récupérée par le runtime. Dans les autres cas, le contrôle reviendra simplement à son état par défaut à chaque fois.

Gardez toujours à l'esprit que la page (et son contenu) et le code sont complètement séparés dans ASP.NET, ils sont connectés au moment de l'exécution. Cela signifie que vous n'obtenez pas le support du concepteur code-behind sympa comme vous le faites dans une application WinForms (où le formulaire est une instance d'un objet).

Questions connexes