What are the differences between making a binding self-referential via name versus self-referential via RelativeSource?
For example:
<!-- Self referential via name -->
<Window ...
x:Name="This"
DataContext="{Binding Path=Data, ElementName=This}"/>
versus
<!-- Self referential via RelativeSource -->
<Window ...
x:Name="This"
DataContext="{Binding Path=Data, RelativeSource={RelativeSource Self}}"/>
In my project they seem to behave identically, but I'm using them directly in a Window. This means that I immediately prefer the former because it's less typing.
Is the only advantage of RelativeSource its ability to be self-referential in (e.g.) a widely-used style? Or is there some additional semantic difference?