2012-02-06 7 views

Odpowiedz

16

{TemplateBinding X} jest po prostu skrótem do pisania {Binding X, RelativeSource={RelativeSource TemplatedParent}}.

Oni oceniają to samo, chociaż TemplateBinding jest oceniany podczas kompilacji, podczas gdy RelativeSource TemplatedParent jest oceniany w czasie wykonywania.

Ponieważ jest oceniany podczas kompilacji, TemplateBinding jest nieco szybszy do oceny, jednak spowoduje błędy, jeśli nie sądzi, że istnieje powiązana właściwość. Jeśli wiesz, że właściwość istnieje, ale kompilator nic o niej nie wie, użyjesz RelativeSource TemplatedParent, ponieważ jest ona oceniana w czasie wykonywania zamiast w czasie kompilacji.

Podsumowując, należy użyć TemplateBinding, chyba że spowoduje to błąd i wiadomo, że właściwość istnieje. Następnie użyj RelativeSource TemplatedParent

accepted answer to the question you linked zawiera bardzo dobre podsumowanie na temat różnic między dwoma

+0

'TemplateBinding' jest' 'TemplatedParent' OneWay' i jest' TwoWay'. –

Powiązane problemy