Laden...

Property überschreiben: "Basisklasse nicht als virtual, abstract oder override markiert"

Erstellt von xbredoillex vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.557 Views
X
xbredoillex Themenstarter:in
46 Beiträge seit 2009
vor 14 Jahren
Property überschreiben: "Basisklasse nicht als virtual, abstract oder override markiert"

Hallo,

ich habe ein Treeview, welches mit erweiterten TreeNodes arbeitet. Das funktioniert auch super.

Nun möchte ich die Text-Eigenschaft mein Versuch sah so aus:


public void ErweiterterTreeNode() : TreeNode
{

	// Erweiterungen...

    public override string Text
	{
    	get{
    		return base.Text;
    	}
    	set{
			base.Text = value;
			aclass.aproperty = value;
    	}
    }
}

Es kommt jedoch die Fehlermeldung das diese Eigenschaft in der Basisklasse nicht überschreibbar ist ( "Basisklasse nicht als virtual, abstract oder override markiert").

Wenn ich das Schlüsselwort "new" verwende haben die Knoten im Treeview zur Laufzeit keine Labels mehr (nur Leerstring) .

Hat jemand eine Idee wie man das lösen könnte?

Gruß

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo xbredoillex,

wenn eine Property nicht als virtual, abstract oder override markiert ist, kann man sie leider nicht vernünftig überschreiben. Wenn eine Property nicht markiert ist, muss man das leider so interpretieren, dass der Autor der Oberklasse das Überschreiben verhindert wollte. new ist in solchen Fällen - wie du festgestellt hast - keine Lösung.

herbivore

X
xbredoillex Themenstarter:in
46 Beiträge seit 2009
vor 14 Jahren

Das habe ich mir fast gedacht, hoffe aber immer noch auf einen genialen Lösungsvorschlag 😃.

1.130 Beiträge seit 2007
vor 14 Jahren

Guck dir mal an, was der Treeview selvber so anbietet. da gibts doch bestimmt labeleditcompleted oder sowas, in dem man den node dann informieren kann. (vermute ich einfach mal)

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

X
xbredoillex Themenstarter:in
46 Beiträge seit 2009
vor 14 Jahren

Genau das habe ich gerade ausprobiert. Der Event heißt "AfterLabelEdit". Das bringt aber auch (merkwürdige) Probleme, die ich nicht mal nachvollziehen kann.

Ich weiß jetzt nicht ob ich dafür nicht einen neuen Thread eröffnen soll, oder doch lieber hierher?

X
xbredoillex Themenstarter:in
46 Beiträge seit 2009
vor 14 Jahren

So jetzt klappt es über das Event.

Danke euch.