2009-08-04 9 views
7

Czytałem w blog następujące zdanie:WPF kontrola dziedziczenia

Pierwsza zasada WPF: kontrola dziedziczenia
uniknąć.

Widziałem podobne rzeczy także w innych miejscach. Jednak nie rozumiem logiki.

Co więcej, widzę tutaj sugestie w StackOverflow, które obejmuje dziedziczenie kontroli WPF (zobacz odpowiedzi na moje pytanie previous na przykład).

Chciałbym zrozumieć, dlaczego należy unikać dziedziczenia kontroli (i jeśli).

Odpowiedz

8

Kontrolki WPF są "bez patrzenia". Innymi słowy, ich wygląd jest oddzielony od ich zachowania. Częściej niż nie, w rzeczywistości chcesz dostosować wygląd - nie zachowanie. W przeciwieństwie do świata WinFormów nie wymaga to dziedziczenia nowej kontroli i zastępowania logiki renderowania. Zamiast tego ustawiasz pewne właściwości kontrolki, odwołując się do samego szablonu, jeśli nie możesz uzyskać pożądanego wyglądu z innych właściwości.

Należy pamiętać, że "unikanie" oznacza właśnie to. Unikaj dziedziczenia , jeśli możesz. W przypadkach, w których należy zmodyfikować zachowanie, dziedziczenie może być najlepszą opcją.

4

Blog z linku stwierdza również, w końcu, że:

"ze stylami, szablonami, dekoratorów i dołączone właściwości i zachowania można osiągnąć większość rzeczy że stosowane musiał wyrzucić nowa kontrola dla: "

To prawda. Jednak zawsze było to prawdą, zespół wpftoolkit nie zrobiłby ich DataGrid jako podklasy MultiSelector.

Oceniaj każdy przypadek osobno, chciałbym powiedzieć. Sprawdź także odpowiedź this.

Powiązane problemy