在XAML中Path =有什么用?

时间:2012-02-17 11:53:10

标签: c# wpf xaml binding

我在XAML中使用了很多绑定,有时我在绑定中使用path =,有时不使用。 在哪些情况下我需要路径=什么时候可以省略它?

5 个答案:

答案 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以外的源时,可以使用SourceRelativeSourceElementName来引用该对象,因此您通常必须指定你要设置绑定的属性:

<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属性,则更容易阅读。代码突出显示也更好。