Что делает Value = "{Binding}"?

Возможный дубликат:
Вопрос синтаксиса привязки WPF

Я использую этот синтаксис повсюду, и я думал, что знаю, что он сделал, но теперь я понятия не имею.

Value="{Binding}"

У меня возникли огромные проблемы с поиском этого синтаксиса онлайн, потому что курсорные скобки игнорируются.

Например:

<Style x:Key="GridCell" TargetType="{x:Type TextBlock}">
    <Setter Property="ToolTip" Value="{Binding}}"/>
</Style>

При применении в качестве стиля к текстовому блоку привязка всплывающей подсказки к неподтвержденному (неконвертированному) свойству, к которому привязан контент текстового блока (текст).

Ответ 1

Значение привязки данных к корню окна или элемента управления DataContext.

Ответ 2

Он привязывается к текущему Datacontext.

Я предлагаю вам ознакомиться с WPF Databinding Cheat Sheet. Должна быть удобная ссылка.

Ответ 3

Синтаксис {Binding <something>} создает новый Binding с помощью Расширение разметки привязки.

В частности, {Binding} создает объект Binding с пустым путем. И поскольку пути относятся к текущему DataContext, это означает привязку к нему.

Ответ 4

Документация относится к {Binding} как к синтаксису "пустой привязки" . Он связывает это свойство со всем объектом, на который ссылается DataContext.

Возможно, стоит отметить, что элемент управления наследует DataContext своего родительского элемента (если вы не установили его напрямую).

Ответ 6

Все зависит от того, где вы используете это дерево элементов. По умолчанию это означает текущий DataContext. Но если вы уже находитесь в своем ListBox, то это означает ListBox DataContext. Что отличается от Root/Main DataContext.