У меня есть элемент управления FooControl. Он должен предоставить доступный только для чтения DependencyProperty с именем HasError. Значение этого свойства на самом деле просто значение из элемента управления в ControlTemplate FooControl.
Следующий код выполняет именно то, что я хочу, за исключением того, что он заставляет меня объявлять FooControl.HasError как DependencyProperty для чтения и записи (Binding не может установить значение иначе.)
<ControlTemplate TargetType="FooControl">
<ChildControl HasError="{Binding HasError, RelativeSource={RelativeSource TemplatedParent}}" />
</ControlTemplate>
Я пытаюсь обойти надоедливые вещи, такие как использование PART_ для поиска дочернего элемента управления, присоединения к его событию HasError ValueChanged и копирования значения. Потому что это противно, и у меня довольно много таких свойств.