Относительная привязка источника может использоваться для привязки двух свойств без ссылки на элемент источника по имени. Это особенно полезно для стилей.
Вот пример ListBox с элементами, которые расширяются при выборе.
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<Expander
Header="{Binding}"
IsExpanded="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBoxItem}, Path=IsSelected}">
<TextBlock
Text="{Binding}" />
</Expander>
</DataTemplate>
</ListBox.ItemTemplate>
<sys:String>a</sys:String>
<sys:String>b</sys:String>
<sys:String>c</sys:String>
<sys:String>d</sys:String>
</ListBox>
Когда мне нужна необычная привязка, я регулярно использую шпаргалку, размещенную Nir в его блоге и упоминаемую в вопросе StackOverflow Есть ли там WPF Cheat Sheet? .
Вот прямая ссылка шпаргалка .
Если вы когда-нибудь прочитали это, спасибо, Нир.