As well as binding to a control's DataContext you can also bind to other controls.
Note that when you do this, the binding source is to the control itself not the control's DataContext. If you want to bind to the control's DataContext then you'll need to specify that in the binding path.
Binding to a named control
If you want to bind to a property on another named control, you can use the control name prefixed by a # character.
<!-- Binds to the Text property of the "other" control -->
This is the equivalent to the long-form binding that will be familiar to WPF and UWP users:
Avalonia also supports WPF/UWP's RelativeSource syntax which does something similar, but is not the same. RelativeSource works on the visual tree whereas the syntax given here works on the logical tree.