2009-08-04 8 views
7

ich in einem blog den folgenden Satz gelesen habe:WPF Steuer Vererbung

Die erste Regel der WPF:
Vermeiden Kontrolle Vererbung.

Ich habe ähnliche Dinge auch an anderen Orten gesehen. Allerdings verstehe ich die Logik nicht.

Darüber hinaus sehe ich hier in StackOverflow Vorschläge, die WPF-Steuerelemente erbt (siehe die Antworten auf meine Frage previous zum Beispiel).

Ich würde gerne verstehen, warum (und wenn) Kontrolle Vererbung sollte vermieden werden.

Antwort

8

WPF-Steuerelemente sind "blicklos". Mit anderen Worten, ihr Aussehen ist von ihrem Verhalten getrennt. In den meisten Fällen möchten Sie das Aussehen anpassen - nicht das Verhalten. Im Gegensatz zur Welt von Winforms müssen Sie hierfür kein neues Steuerelement erben und die Rendering-Logik außer Kraft setzen. Stattdessen legen Sie einige Eigenschaften für das Steuerelement fest und greifen auf die Vorlage selbst zurück, wenn Sie das gewünschte Aussehen nicht von anderen Eigenschaften erhalten.

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

4

Der Blog über den Link heißt es auch am Ende, dass:

"Mit Styles, Templates, Dekorateure und angefügten Eigenschaften und Verhaltensweisen, die Sie die meisten Dinge erreichen können, die Sie verwendet haben, um eine rollen neue Kontrolle für. "

Das ist wahr. Wäre es jedoch immer wahr, hätte das Team wpftoolkit sein DataGrid nicht als Unterklasse von MultiSelector erstellt.

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