我在XAML中使用了很多绑定,有时我在绑定中使用path =,有时不使用。 在哪些情况下我需要路径=什么时候可以省略它?
答案 0 :(得分:12)
它总是可以省略,因为它是Binding XAML扩展的默认属性。仅在使用多个属性时才明确指定。
答案 1 :(得分:11)
这是因为Binding类有一个默认构造函数,当你有{Binding FallbackValue='HelloWorld', Path=MyProperty}
之类的绑定和一个带有单个参数Path的构造函数时使用。
因此,当存在属性/值对列表时,绑定将创建为
new Binding(){
Path="MyProperty"
ElementName="MyElement"
}
第二种形式用于绑定{Binding MyProperty, ...}
。在这种情况下,绑定创建为
new Binding("MyProperty"){
ElementName = "MyElement",
...
}
指定Path =总是正确的(也可能更正确),但没有它就可以逃脱。
答案 2 :(得分:7)
Path用于指定要绑定的基础对象的属性名称。
绑定到DataContext时,可以省略Path:
{Binding MyProperty}
{Binding Path=MyProperty}
当您需要指定DataContext以外的源时,可以使用Source
,RelativeSource
或ElementName
来引用该对象,因此您通常必须指定你要设置绑定的属性:
<Button Background="{Binding ElementName=refButton, Path=Background}"/>
<TextBlock Width="{Binding RelativeSource={RelativeSource Self}, Path=Parent.ActualWidth}"/>
答案 3 :(得分:4)
在Binding语句后面直接写入属性的路径时,总是可以省略Path =。
{Binding MyProperty}
与
相同{Binding Path=MyProperty}
当您内联属性的路径时,需要使用Path =
指定它{Binding FallbackValue='HelloWorld', Path=MyProperty}
答案 4 :(得分:3)
像Richard Szalay所说,如果它是第一个属性,它是可选的。但是在我的选择中,如果输入path属性,则更容易阅读。代码突出显示也更好。