В качестве продолжения вопроса Связывание 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
?