2011-03-21 6 views
30

Peut-être que c'est une question stupide, mais je ne trouve pas la réponse: dans le xaml suivant qu'est-ce que CommandParameter contraignant? Ou en général, que signifie "{Binding}"?Comprendre WPF Binding CommandParameter = "{Binding}"

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

Répondre

49

{Binding ...} est une extension Markup.
Dans sa forme habituelle, il prend un chemin comme {Binding Path=someProperty, ...} (ou sa forme abrégée {Binding someProperty, ...}).
Ainsi, le chemin dans {Binding} est vide, ce qui signifie que la liaison est liée à la source de la liaison. Cela pourrait être un peu plus facile à comprendre si vous savez, que {Binding} est réellement le même que {Binding DataContext,RelativeSource={RelativeSource Self}}. Par conséquent, dans votre cas, CommandParameter obtient la valeur du DataContext actuel du Button.