7 Stimmen

WPF Steuerung Vererbung

Ich habe in einem Blog den folgenden Satz gelesen:

Die erste Regel von WPF:
Vermeide die Vererbung von Steuerelementen.

Ähnliches habe ich auch an anderen Stellen gesehen. Allerdings verstehe ich die Logik nicht.

Zudem sehe ich hier auf StackOverflow Vorschläge, die die Vererbung von WPF-Steuerelementen beinhalten (siehe die Antworten auf meine vorherige Frage zum Beispiel).

Ich würde gerne verstehen, warum (und ob) die Vererbung von Steuerelementen vermieden werden sollte.

8voto

Kent Boogaart Punkte 170094

WPF-Steuerungen sind "lookless". Mit anderen Worten, ihr Aussehen ist von ihrem Verhalten getrennt. Oft möchten Sie tatsächlich das Aussehen anpassen - nicht das Verhalten. Im Gegensatz zur Welt von Winforms müssen Sie dazu nicht eine neue Steuerung erben und die Renderlogik überschreiben. Stattdessen setzen Sie einige Eigenschaften auf der Steuerung, wobei Sie nur dann das Template selbst überschreiben, wenn Sie das gewünschte Aussehen nicht über andere Eigenschaften erhalten.

Beachten Sie, dass "vermeiden" genau das bedeutet. Vermeiden Sie die Vererbung wenn möglich. In Fällen, in denen Sie das Verhalten ändern müssen, ist die Vererbung möglicherweise die beste Option.

4voto

Kenan E. K. Punkte 13604

Der Blog vom Link sagt auch am Ende, dass:

"Mit Styles, Templates, Decorators und angefügten Eigenschaften und Verhaltensweisen können Sie die meisten Dinge erreichen, für die Sie früher ein neues Steuerelement erstellen mussten."

Das ist wahr. Wenn es jedoch immer wahr wäre, hätte das wpftoolkit Team ihren DataGrid nicht als Unterklasse von MultiSelector gemacht.

Bewerte jeden Fall separat, würde ich sagen. Überprüfen Sie auch diese Antwort.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X