Если вам не нравится использование RelativeSource, вы можете назвать свой родительский элемент, а затем использовать тег ElementName
в расширении Binding:
Если вы хотите связать / пересечь разные ViewModels, я думаю, вам придется использовать какой-либо Event Broker / Aggregator. Посмотрите на Prism, он может дать вам некоторые идеи