通过名称进行绑定自引用与通过 RelativeSource 进行自引用之间有什么区别?
例如:
<!-- Self referential via name -->
<Window ...
x:Name="This"
DataContext="{Binding Path=Data, ElementName=This}"/>
相对
<!-- Self referential via RelativeSource -->
<Window ...
x:Name="This"
DataContext="{Binding Path=Data, RelativeSource={RelativeSource Self}}"/>
在我的项目中,它们的行为似乎相同,但我直接在窗口中使用它们。这意味着我立即更喜欢前者,因为它打字更少。
RelativeSource 的唯一优势是它能够在(例如)广泛使用的样式中进行自我引用吗?还是有一些额外的语义差异?