Megosztás a következőn keresztül:


TemplateBinding jelölési bővítmény

Egy vezérlősablonban lévő tulajdonság értékét egy másik tulajdonság értékéhez kapcsolja össze a sablonalapú vezérlőn.

XAML-attribútumok használata

<object property="{TemplateBinding sourceProperty}" ... />

XAML attribútum használat (beállító tulajdonság sablonban vagy stílusban)

<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" ... />

XAML-értékek

Érték Leírás
propertyName A DependencyProperty.Name tulajdonság beállítása a setter szintaxisban.
sourceProperty Egy másik függőségi tulajdonság, amely a sablonként megadott típuson létezik, amelyet a DependencyProperty.Namehatároz meg.

-vagy-

"Egy olyan tulajdonságnév, amely pontjelöléssel van leírva, és amelyet a sablonozott céltípustól eltérő típus határoz meg." Ez valójában egy PropertyPath. Lásd PropertyPath XAML szintaxis.

Megjegyzések

A TemplateBinding egy Binding optimalizált formája a sablon-szcenáriókhoz, hasonlóan a Binding-ból készült {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}-hoz. A TemplateBinding mindig egyirányú kötés, még akkor is, ha a tulajdonságok alapértelmezés szerint kétirányú kötést igényelnek. Mindkét érintett tulajdonságnak függőségi tulajdonságoknak kell lennie. A sablonalapú szülőhöz való kétirányú kötés eléréséhez használja a következő kötési utasítást {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}.

RelativeSource egy másik korrektúrakiterjesztés, amelyet néha a TemplateBinding együtt vagy helyett használnak a relatív tulajdonságkötés végrehajtásához egy sablonon belül.

A vezérlősablonok fogalomként való leírásáról itt nem esik szó; További információ: Vezérlőstílusok és sablonok.

Az attribútumszintaxis a korrektúrakiterjesztés leggyakoribb szintaxisa. A TemplateBinding azonosító sztringje után megadott karakterlánc token a mögöttes Property bővítményosztály TemplateBindingExtension értékéhez van hozzárendelve.

Az objektumelem szintaxisa lehetséges, de nem jelenik meg, mert nincs valósághű alkalmazása. A TemplateBinding arra szolgál, hogy kitöltse az értékeket a setterekben, kiértékelt kifejezések használatával, és hogy a TemplateBinding objektumelem szintaxis használatával töltse ki a <Setter.Property> tulajdonságelem szintaxisát, de ez feleslegesen terjengős.

TemplateBinding olyan részletes attribútumhasználatban is használható, amely a Property tulajdonságot tulajdonság=érték párként határozza meg:

<object property="{TemplateBinding Property=sourceProperty}" ... />

A részletes használat gyakran hasznos olyan bővítmények esetében, amelyek több beállítási tulajdonsággal rendelkeznek, vagy ha egyes tulajdonságok nem kötelezőek. Mivel TemplateBinding csak egy beállítási tulajdonsággal rendelkezik, ami kötelező, ez a bőbeszédű használat nem jellemző.

A WPF XAML processzor implementációjában a jelölőbővítmény kezelését a TemplateBindingExtension osztály határozza meg.

TemplateBinding egy korrektúrakiterjesztés. Jelölőkiterjesztéseket általában akkor alkalmaznak, amikor szükség van arra, hogy az attribútumértékek ne csak konstans értékek vagy kezelőnevek legyenek, és a követelmény globálisabb, mint bizonyos típusok vagy tulajdonságok esetében a típuskonverterek használata. Az XAML-ben minden korrektúrakiterjesztés az attribútumszintaxis { és } karaktereit használja, ez az a konvenció, amellyel az XAML-processzor felismeri, hogy a korrektúrakiterjesztésnek fel kell dolgoznia az attribútumot. További információ: Korrektúrakiterjesztések és WPF XAML.

Lásd még