我已经看过很多WPF Binding示例,并在学习MVVM的许多不同地方使用过该功能,但是对我来说似乎很不一致的是当你在绑定字符串中指定“Path =”时只需键入要绑定的属性即可。例如,以下XAML属性之间的功能区别是什么:
DataMemberBinding="{Binding SomeProperty}"
DataMemberBinding="{Binding Path=SomeProperty}"
答案 0 :(得分:43)
没有功能差异。 Binding对象的默认属性是Path,这意味着如果您没有指定要设置的属性,那么您将设置Path。
这是因为Binding对象有两个构造函数,一个是默认值,另一个是单个字符串参数。传入一个值而不标记它时,该属性将被转发到匹配的构造函数,在Binding的情况下,它设置路径。它在概念上与属性的工作方式非常相似,对构造函数的调用后跟可选参数,例如:
[AttributeUsage(AttributeTargets.Class), AllowMultiple = false, Inherited = false ]
可能方式超出了你实际提出问题的范围,但我注意到两者之间存在轻微(可能无关紧要)的差异。由于我自己无法解释,我已经开始了一个关于它的新问题here。