理解WPF Binding CommandParameter =“{Binding}”

时间:2011-03-21 12:40:30

标签: wpf binding

也许这是一个愚蠢的问题,但我找不到答案:在下面的xaml CommandParameter绑定到什么?或者一般来说,"{Binding}"是什么意思?

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

2 个答案:

答案 0 :(得分:54)

{Binding ...}是MarkupExtension 在其通常的形式中,它采用类似{Binding Path=someProperty, ...}(或其简短形式{Binding someProperty, ...})的路径 因此{Binding}中的路径为空,这意味着绑定绑定到绑定的任何源。如果您知道{Binding}实际上与{Binding DataContext,RelativeSource={RelativeSource Self}}相同,这可能会更容易理解。

因此,在您的情况下,CommandParameter获取Button的当前DataContext的值。

答案 1 :(得分:10)

{Binding}将控件的当前DataContext分别传递给Executed和CanExecute方法。