В качестве продолжения вопроса Связывание DataContext с другим свойством в WPF.
В самом конце исследования я был очень удивлен, узнав, что, когда вы пишете что-то вроде этого:
<Label Content="{Binding Path=Name}" />
DataContext, с которым привязан свойство Content, принадлежит самому элементу Label! Тот факт, что он все еще работает, связан с наследованием по умолчанию значения DataContext от ближайшего родителя.
Но если у вас есть этот ярлык, завернутый в пользовательский элемент управления, и вы не хотите привязывать свои данные к свойству DataContext этого элемента управления, вам скорее всего понравится:
<Controls:SearchSettings Settings="{Binding Path=Settings}" />
И вот вы. Теперь вам нужно установить Settings как DataContext для элемента управления SearchSettings, для Label внутри для привязки, но вы не можете, потому что это вызовет повторное связывание свойства Settings.
Я не вижу смысла смешивать свойства связывания с использованием разных источников: DataContext, ElementName и т.д.
Так почему бы мне использовать DataContext?