WPF 关于CommandParameter=“{Binding}”的理解

        本章讲述在XAML中控件中使用CommandParameter="{Binding}”的个人理解。

        CommandParameter="{Binding}”解释:{绑定…}是一个标记扩展,CommandParameter为Command定义一个参数;。在它通常的形式中,它的路径如下:{Binding Path=someProperty,…}(或其简写形式{Binding someProperty,…})。所以{Binding}中的路径是空的,这意味着绑定绑定到任何一个源。

        如果你知道{Binding}实际上和{Binding DataContext,RelativeSource={RelativeSource Self}}是一样的,这可能会更容易理解。

        因此,在你的情况下,CommandParameter获取按钮的当前DataContext的值。

        如果没有指定Source或者RelativeSource属性数据源,WPF就从当前元素开始在元素树上向上查找,直到第一个非空 的DataContext属性。

**************************************************************************************************************

        使用RelativeSource对象指向源对象,TemplateParent:表达式绑定到应用模板的元素。只有当绑定位于控件模板或者数据模板内部时,这种模式才会工作。

        CommandParameter="{Binding}":   {Binding}实际上和{Binding DataContext,RelativeSource={RelativeSource Self}}是一样的,CommandParameter获取按钮的当前DataContext的值,如果没有指定Source或者RelativeSource属性数据源,WPF就从当前元素开始在元素树上向上查找,直到第一个非空 的DataContext属性。

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

	
		
			
		
		

**************************************************************************************************************

你可能感兴趣的:(WPF,#,WPF,基础学习,wpf)