2011-03-21 9 views
30

Quizás esta es una pregunta tonta, pero no puedo encontrar la respuesta: en la siguiente xaml ¿a qué se vincula CommandParameter? O, en general, ¿qué significa "{Binding}"?Comprender encuadernación WPF CommandParameter = "{Binding}"

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

Respuesta

49

{Binding ...} es una ampliación de marca.
En su forma habitual, toma una ruta de acceso como {Binding Path=someProperty, ...} (o su forma abreviada {Binding someProperty, ...}).
Por lo tanto, la ruta en {Binding} está vacía, lo que significa que la vinculación está vinculada a la Fuente que haya para la vinculación. Esto podría ser un poco más fácil de entender si sabes que {Binding} es realmente lo mismo que {Binding DataContext,RelativeSource={RelativeSource Self}}.

En su caso, CommandParameter obtiene el valor del DataContext actual del botón.