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。
<Stylex: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>
?