理解WPF绑定CommandParameter="{Binding}"

42
也许这是个愚蠢的问题,但我找不到答案:在下面的 XAML 中,CommandParameter 绑定到什么?或者一般来说,"{Binding}" 是什么意思?
<Button Command="{Binding DataContext.DeleteCommand, ElementName=List}" 
        CommandParameter="{Binding}"/>
2个回答

67

{Binding ...}是一个MarkupExtension。
通常形式下它会使用一个类似于 {Binding Path=someProperty, ...}(或其简写形式{Binding someProperty, ...})的路径。
因此,在{Binding}中的路径为空,这意味着Binding将与绑定源绑定。如果您了解,{Binding}实际上等同于{Binding DataContext,RelativeSource={RelativeSource Self}},那么这可能会更容易理解。

所以在您的情况下,CommandParameter获取的是Button当前DataContext的值。


15

一个空的{Binding}会将控件当前的DataContext传递给Executed和CanExecute方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接