Binding.Path
获取或设置绑定源属性的路径。
每个绑定通常都具有四个组件:绑定目标对象、目标属性、绑定源,以及要使用的绑定源值的路径。
有关这些数据绑定概念的更多信息,请参见
数据绑定概述
。
使用
Path 属性可以指定您要绑定到的源值:
在最简单的情况下,
Path 属性值是要用于绑定的源对象的属性名,如
Path=PropertyName。
通过类似于 C# 中使用的语法,可以指定属性的子属性。
例如,子句
Path=ShoppingCart.Order 设置与对象或属性
ShoppingCart 的
Order 子属性的绑定。
若要绑定到附加属性,应在附加属性周围放置圆括号。
例如,若要绑定到附加属性
DockPanel
.Dock
,则语法是
Path=(DockPanel.Dock)。
可以在要应用索引器的属性名后面的方括号内指定属性的索引器。
例如,子句
Path=ShoppingCart[0] 将绑定设置为与属性的内部索引处理文本字符串“0”的方式对应的索引。
此外,还支持多个索引器。
可以在
Path
子句中混合索引器和子属性;例如,
Path=ShoppingCart.ShippingInfo[MailingAddress,Street].
在索引器内部,您可以有多个由逗号 (,) 分隔的索引器参数。
可以使用圆括号指定每个参数的类型。
例如,您可以有
Path="[(sys:Int32)42,(sys:Int32)24]",其中
sys 映射到
System
命名空间。
如果源为集合视图,则可以用斜杠 (/) 指定当前项。
例如,子句
Path=/ 用于设置到视图中当前项的绑定。
如果源为集合,则此语法指定默认集合视图的当前项。
可以结合使用属性名和斜杠来遍历作为集合的属性。
例如,
Path=/Offices/ManagerName 指定源集合的当前项,该源集合包含也作为集合的
Offices 属性。
其当前项是一个包含
ManagerName 属性的对象。
也可以使用句点 (.) 路径绑定到当前源
。
例如,
Text="{Binding}" 等效于
Text="{Binding Path=.}"。
下面的示例显示一个用于创建
ToolTip
以报告验证错误消息的样式触发器。
使用
RelativeSource
属性将 setter 的值绑定到当前
TextBox
(使用样式的
TextBox
)的错误内容。
有关此示例的更多信息,请参见
How to: Implement Binding Validation
。
Style
x:Key
="textBoxInError"
TargetType
="
{x:Type TextBox}
"
<
Style.Triggers
>
<
Trigger
Property
="Validation.HasError"
Value
="true"
>
<
Setter
Property
="ToolTip"
Value
="
{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors)[0].ErrorContent}
"
/>
</
Trigger
>
</
Style.Triggers
>
</
Style
>