Frage

Ich habe ein Benutzersteuerelement erstellt, das eine ListView in es.Die ListView ist öffentlich zugänglich, aber eine Eigenschaft.Wenn ich das UserControl in ein Formular und versuchen, um design die ListView obwohl die Eigenschaft, die ListView bleibt so, bis ich wieder kompiliert, und es wird wieder die default-Zustand.

Wie bekomme ich meine design-änderungen, um-stick für die ListView?

War es hilfreich?

Lösung

Sie müssen dekorieren Sie die ListView-Eigenschaft mit dem DesignerSerializationVisibility-Attribut, etwa so:

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

Das sagt der designer-code-generator für Ausgang code für Sie.

Andere Tipps

Fredrik ist richtig, im Grunde, wenn Sie benötigen, um die designer zu bestehen Eigentum zu Seite, so kann es zur Laufzeit instanziiert.Es gibt nur einen Weg, dies zu tun, und das ist, schreiben Sie Ihre Werte auf der ASPX-Seite, die dann abgeholt von der Laufzeit.

Andernfalls wird das Steuerelement einfach wieder auf den Standardwert zurück, jedes mal.

Behalten Sie immer im Hinterkopf, dass die Seite (und deren Inhalte) und der code sind völlig getrennt in ASP.NET sind Sie süchtig auf die run Zeit.Dies bedeutet, dass Sie nicht die nette code-behind-Unterstützung für designer, wie tun Sie in einer WinForms-app (wo die form-ist eine Instanz eines Objekts).

Nur damit ich klar bin, das Sie getan haben, so, ne?

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

Also dann, auf den Sie zugreifen (zur Entwurfszeit) die MyListView Eigenschaft, die auf Ihrem UserControl?

Ich denke, wenn Sie wollen die richtige design-time-support-du bist besser dran ändern "Modifier" - Eigenschaft der ListView selbst (wieder auf den ursprünglichen UserControl) Öffentlich - auf diese Weise können Sie ändern Sie die ListView direkt auf Instanzen des UserControl.Ich habe Erfolg, tun das sowieso.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top