Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Összekapcsolja egy vezérlősablon tulajdonságának értékét a sablonalapú vezérlő más közzétett tulajdonságának értékével. A TemplateBinding csak az XAML ControlTemplate-definíciójában használható.
XAML-attribútumok használata
<object propertyName="{TemplateBinding sourceProperty}" .../>
XAML attribútum használata (Setter tulajdonság a sablonban vagy a stílusban)
<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" .../>
XAML-értékek
| Időszak | Description |
|---|---|
| propertyName | A beállító szintaxisban beállított tulajdonság neve. Ennek függőségi tulajdonságnak kell lennie. |
| forrástulajdonság | Egy másik függőségi tulajdonság neve, amely a sablonozott típuson található. |
Megjegyzések
A TemplateBinding használata alapvető része annak, hogyan definiálhat vezérlősablonokat, akár egyéni vezérlőelem-szerző, akár meglévő vezérlőkre cserél egy vezérlősablont. További információ: Vezérlősablonok.
A propertyName és a targetProperty esetében meglehetősen gyakori, hogy ugyanazt a tulajdonságnevet használják. Ebben az esetben egy vezérlő meghatározhat egy tulajdonságot önmagában, és továbbíthatja a tulajdonságot az egyik összetevőjének meglévő és intuitív nevesített tulajdonságára. Például egy olyan vezérlő, amely a szövegblokkot tartalmazza a szövegösszeírásban, amely a vezérlő saját Text tulajdonságának megjelenítésére szolgál, a vezérlősablon részeként a következő XAML-t is tartalmazhatja: <TextBlock Text="{TemplateBinding Text}" .... />
A forrástulajdonság és a céltulajdonság értékeként használt típusoknak meg kell egyeznie.
A TemplateBinding használatakor nincs lehetőség konverter bevezetésére. Az értékek egyeztetésének sikertelensége hibát eredményez az XAML elemzésekor. Ha konverterre van szüksége, használhatja a sablonkötés részletes szintaxisát, például: {Binding RelativeSource={RelativeSource TemplatedParent}, Converter="..." ...}
A ControlTemplate-definíción kívüli TemplateBinding XAML-ben való használatának megkísérlése elemzési hibát eredményez.
A TemplateBinding használható olyan esetekben, amikor a sablonos szülőérték másik kötés formájában is késleltetve van. A TemplateBinding kiértékelése megvárhatja, amíg a szükséges futtatókörnyezet-kötések értékekkel rendelkeznek.
A TemplateBinding mindig egyirányú kötés. Mindkét érintett tulajdonságnak függőségi tulajdonságoknak kell lennie.
A TemplateBinding egy korrektúrakiterjesztés. A korrektúrakiterjesztések általában akkor implementálódnak, ha az attribútumértékek nem konstansértékek vagy kezelőnevek, és a követelmény globálisabb, mint a típuskonverterek bizonyos típusok vagy tulajdonságok esetében való elhelyezése. Az XAML-ben az összes korrektúrakiterjesztés az attribútumszintaxisában a "{" és a "}" karaktert használja, ez az a konvenció, amellyel az XAML-feldolgozó felismeri, hogy egy korrektúrakiterjesztésnek fel kell dolgoznia az attribútumot.
Jegyzet A Windows-futtatókörnyezet XAML processzor implementációjában nincs háttérosztály-reprezentáció a TemplateBindinghez. A TemplateBinding kizárólag XAML-jelölésben használható. A kód viselkedésének reprodukálására nincs egyszerű módszer.
x:Kötés a ControlTemplate-ban
Megjegyzés:
Az x:Bind controlTemplate-ban való használatához a Windows 10 1809-es (SDK 17763) vagy újabb verziója szükséges. További információ a célverziókról: Adaptív verziókód.
A Windows 10 1809-es verziójától kezdve az x:Bind korrektúra bővítményt bárhol használhatja, ahol a TemplateBindinget használja a ControlTemplate-ban.
A TargetType tulajdonság megadása kötelező (nem opcionális) a ControlTemplate-ban x:Bind használatakor.
Az x:Kötés támogatásával a ControlTemplate-ban mindkét függvénykötést és kétirányú kötést használhatja.
Ebben a példában a TextBlock.Text tulajdonság a Button.Content.ToString értéket értékeli ki. A ControlTemplate TargetType tulajdonsága adatforrásként működik, és ugyanazt az eredményt éri el, mint egy TemplateBinding a szülőhöz.
<ControlTemplate TargetType="Button">
<Grid>
<TextBlock Text="{x:Bind Content, Mode=OneWay}"/>
</Grid>
</ControlTemplate>
Kapcsolódó témakörök
Windows developer