2013-01-17 22 views
6

Recentemente ho letto 'Databinding panoramica' articolo a MSDN e non v'è tale codice di esempio:Cosa significano le parentesi nei percorsi di associazione?

<TextBox.ToolTip> 
    <Binding RelativeSource="{RelativeSource Self}" Path="(Validation.Errors)[0].ErrorContent"/> 
</TextBox.ToolTip> 

So che {} significa estensioni di markup ma ciò che media() parentesi qui? Sarebbe bello qualcuno condividere link per spiegare tale sintassi. Grazie!

Path="(Validation.Errors)[0].ErrorContent" 

risposta

11

Le parentesi () fanno riferimento a Proprietà collegate.

Binding to an Attached Property

+2

La realtà _potete_ si riferiscono ad una proprietà associata - ma non è l'unico caso in cui ne avrebbe bisogno ... – Spontifixus

3

(Validation.Errors) fa riferimento la proprietà associata Errors nella classe Validation. Poiché l'associazione ha un RelativeSource = Self, cercherà il valore di quella proprietà associata rispetto al TextBox stesso.

4

Citando il (MSDN cito qui perché non avrebbe potuto scrivere in giù meglio) MSDN library:

Questa sintassi è generalmente utilizzato per uno dei seguenti casi:

  • Il percorso è specificato in XAML che si trova in uno stile o modello che non ha uno TargetType specificato. Generalmente, un utilizzo qualificato non è valido per casi diversi da questo, perché in casi non di stile, non modelli, la proprietà esiste su un'istanza, non su un tipo.
  • La proprietà è un edificio annesso.
  • Si sta vincolando a una proprietà statica.

Per l'utilizzo come destinazione storyboard, la proprietà specificata come propertyName deve essere un DependencyProperty.

Problemi correlati