Вопрос о синтаксисе связывания WPF - PullRequest
4 голосов
/ 23 марта 2010

Я видел этот синтаксис, и пытался найти его в Google, но безрезультатно; Что это значит, когда ДП связан таким образом?

<Grid>
    <ContentControl Content="{Binding}"/>
</Grid>

Я предполагал, что вам нужно привязать какое-либо свойство в DataContext или другой элемент, но это, похоже, ни к чему не привязывает.

Ответы [ 4 ]

7 голосов
/ 23 марта 2010

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

3 голосов
/ 23 марта 2010

Я считаю, что {Binding} относится к самому DataContext.

edit (уточнение): Под DataContext я подразумеваю текущий уровень DataContext. Например, если DataContext вашего окна привязан к списку, то установка ItemsSource для элемента управления ListBox в вашем окне на {Binding} привяжет ListBox к самому списку, а не к свойству списка, как Count.

0 голосов
/ 23 марта 2010

{Binding} означает, что вы хотите привязать к текущему DataContext, который может быть установлен для самого объекта. Если для текущего объекта не задан DataContext, то он пройдет по VisualTree и найдет ближайший Parent, имеющий DataContext.

0 голосов
/ 23 марта 2010

{Binding} для {Binding [CurrentDataContext]}

...