Когда использовать TemplateBinding и TemplatedParent в WPF - PullRequest
6 голосов
/ 06 февраля 2012

У меня путаница с TemplateBinding и TemplatedParent. Я также прошел по этой ссылке WPF TemplateBinding и RelativeSource TemplatedParent

Но я сомневаюсь, когда использовать TemplateBinding и TemplatedParent?

Заранее спасибо.

1 Ответ

17 голосов
/ 06 февраля 2012

{TemplateBinding X} - это просто сокращенный способ написания {Binding X, RelativeSource={RelativeSource TemplatedParent}}.

Они оценивают одно и то же, хотя TemplateBinding оценивается во время компиляции, а RelativeSource TemplatedParent оценивается во время выполнения.

Поскольку он вычисляется во время компиляции, TemplateBinding вычисляется немного быстрее, однако он выдаст ошибки, если не будет считать, что свойство привязки существует. Если вы знаете, что свойство существует, но компилятор не знает о нем, тогда вы используете RelativeSource TemplatedParent, поскольку оно оценивается во время выполнения, а не во время компиляции.

Чтобы подвести итог, используйте TemplateBinding, если это не дает вам ошибку, и вы не знаете, что свойство существует. Тогда используйте RelativeSource TemplatedParent

Принятый ответ на вопрос, который вы связали , содержит довольно хорошее обобщение различий между двумя

...