也许这是一个愚蠢的问题,但我找不到答案:在下面的xaml CommandParameter
绑定到什么?或者一般来说,"{Binding}"
是什么意思?
<Button Command="{Binding DataContext.DeleteCommand, ElementName=List}"
CommandParameter="{Binding}"/>
{Binding ...}
是MarkupExtension。
在其通常的形式,它需要像{Binding Path=someProperty, ...}
(或其短形式{Binding someProperty, ...}
)的路径。
所以{Binding}
中的路径是空的,这意味着Binding绑定到绑定的任何Source。如果你知道,这可能会更容易理解,{Binding}
实际上与{Binding DataContext,RelativeSource={RelativeSource Self}}
相同。
因此,在您的情况下,CommandParameter获取Button的当前DataContext的值。
Empty {Binding}
将控件的当前DataContext分别传递给Executed和CanExecute方法。
检查以下链接
http://www.developmentalmadness.com/archive/2009/08/26/xaml-binding-to-the-current-datacontext.aspx
http://www.wpfmentor.com/2009/01/how-to-add-binding-to-commandparameter.html