Подтвердить что ты не робот

Понять WPF Binding CommandParameter = "{Binding}"

Возможно, это глупый вопрос, но я не могу найти ответ: в следующем xaml, с чем привязывается CommandParameter? Или вообще, что означает "{Binding}"?

<Button Command="{Binding DataContext.DeleteCommand, ElementName=List}" 
        CommandParameter="{Binding}"/>
4b9b3361

Ответ 1

{Binding ...} - это MarkupExtension.
В своей обычной форме он принимает путь как {Binding Path=someProperty, ...} (или его короткую форму {Binding someProperty, ...}).
Таким образом, путь в {Binding} пуст, что означает, что привязка привязана к любому источнику, который существует для привязки. Это может быть немного легче понять, если вы знаете, что {Binding} на самом деле совпадает с {Binding DataContext,RelativeSource={RelativeSource Self}}.

Итак, в вашем случае CommandParameter получает значение текущего DataContext кнопки.

Ответ 2

Пустой {Binding} будет передавать текущий DataContext элемента управления в методы Executed и CanExecute соответственно.

Ответ 3

{Binding...} является расширением MarkupExtension. В своей обычной форме он принимает путь типа {Binding Path = someProperty,...} (или его краткую форму {Binding someProperty,...}).