Reputation: 8786
Maybe this is a dumb question, but I can't find the answer: in the following xaml what does CommandParameter
binding to? Or in general, what does "{Binding}"
mean?
<Button Command="{Binding DataContext.DeleteCommand, ElementName=List}"
CommandParameter="{Binding}"/>
Upvotes: 42
Views: 50755
Reputation: 18000
An Empty {Binding}
will pass the current DataContext of the control to the Executed and CanExecute methods respectively.
Upvotes: 16
Reputation: 7896
{Binding ...}
is a MarkupExtension.
In its usual form it takes a Path like {Binding Path=someProperty, ...}
(or its short form {Binding someProperty, ...}
).
So the path in {Binding}
is empty which means the Binding is bound to whatever Source there is for the Binding. This might be a little easier to understand if you know, that {Binding}
is actually the same as {Binding DataContext,RelativeSource={RelativeSource Self}}
.
So in your case CommandParameter gets the value of the current DataContext of the Button.
Upvotes: 67