理解WPF Binding CommandParameter =“{Binding}”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解WPF Binding CommandParameter =“{Binding}”相关的知识,希望对你有一定的参考价值。

也许这是一个愚蠢的问题,但我找不到答案:在下面的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

以上是关于理解WPF Binding CommandParameter =“{Binding}”的主要内容,如果未能解决你的问题,请参考以下文章

WPF binding<一> Data Binding在WPF中的地位

WPF BINDING

WPF自学入门WPF 初识Binding

wpf 中images控件binding显示图片后,图片文件会一直被占用吗?如果是该怎么解

Binding 中 Elementname,Source,RelativeSource 三种绑定的方式

wpf程序,binding后界面啥都不显示,下面附上相关代码