Question

J'ai créé un UserControl qui a un ListView dedans.Le ListView est accessible publiquement via une propriété.Lorsque je mets le UserControl dans un formulaire et que j'essaie de concevoir le ListView bien que la propriété, le ListView reste ainsi jusqu'à ce que je compile à nouveau et qu'il revienne à l'état par défaut.

Comment puis-je faire en sorte que mes modifications de conception soient appliquées au ListView?

Était-ce utile?

La solution

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

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

Cela indique au générateur de code du concepteur de générer le code correspondant.

Autres conseils

Fredrik est correct, fondamentalement, lorsque vous devez permettre au concepteur de conserver la propriété sur la page afin qu'elle puisse être instanciée au moment de l'exécution.Il n'y a qu'une seule façon de procéder, c'est d'écrire ses valeurs sur la page ASPX, qui sont ensuite récupérées par le runtime.

Sinon, 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 la prise en charge du concepteur code-behind comme vous le faites dans une application WinForms (où le formulaire est une instance d'un objet).

Juste pour que ce soit 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 de la conception) à la propriété MyListView sur votre UserControl ?

Je pense que si vous souhaitez une prise en charge appropriée au moment de la conception, il est préférable de changer la propriété "Modifier" du ListView lui-même (de retour sur le UserControl d'origine) en Public - de cette façon, vous pouvez modifier le ListView directement sur les instances du UserControl.J'ai réussi à le faire de toute façon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top