Rozšíření značkování TemplateBinding
Propojuje hodnotu vlastnosti v šabloně ovládacího prvku tak, aby byla hodnotou jiné vlastnosti v ovládacím prvku šablony.
Použití atributu XAML
<object property="{TemplateBinding sourceProperty}" ... />
Použití atributu XAML (pro vlastnost „Setter“ v rámci šablony nebo stylu)
<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" ... />
Hodnoty XAML
Hodnota | Popis |
---|---|
propertyName |
DependencyProperty.Name vlastnosti, která se nastavuje v syntaxi setter. |
sourceProperty |
Další vlastnost závislosti, která existuje u typu, pro který je vytvořena šablona, určená jeho DependencyProperty.Name. - nebo - Název vlastnosti "tečkované dolů", který je definován jiným typem než cílový typ, který je šablonován. To je vlastně PropertyPath. Viz syntaxe XAML PropertyPath. |
Poznámky
TemplateBinding
je optimalizovaná forma Binding
pro scénáře šablon, podobně jako Binding
konstruovaná s {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}
.
TemplateBinding
je vždy jednosměrná vazba, a to i v případě, že vlastnosti mají výchozí obousměrnou vazbu. Obě zahrnuté vlastnosti musí být vlastnosti závislosti. K dosažení obousměrné vazby s nadřazenou šablonou použijte následující příkaz vazby místo toho {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}
.
RelativeSource je další rozšíření značek, které se někdy používá ve spojení s TemplateBinding
nebo místo TemplateBinding
k provádění relativní vazby vlastností v rámci šablony.
Popis šablon ovládacích prvků jako koncept zde není popsaný; Další informace naleznete v tématu Ovládací styly a šablony.
Syntaxe atributu je nejběžnější syntaxe použitá s tímto rozšířením značek. Řetězcový token poskytnutý za řetězcem identifikátoru TemplateBinding
je přiřazen jako hodnota Property podkladové třídy rozšíření TemplateBindingExtension.
Syntaxe elementu objektu je možná, ale nezobrazuje se, protože nemá žádnou realistickou aplikaci.
TemplateBinding
se používá pro nastavení hodnot pomocí setterů, k využití vyhodnocených výrazů a pro použití syntaxe prvku objektu pro TemplateBinding
, zatímco použití syntaxe prvku vlastnosti <Setter.Property>
je zbytečně podrobné.
TemplateBinding
lze také použít ve podrobném použití atributu, který určuje vlastnost Property jako pár property=value:
<object property="{TemplateBinding Property=sourceProperty}" ... />
Podrobné použití je často užitečné pro rozšíření, která mají více nastavitelných vlastností, nebo pokud některé vlastnosti jsou volitelné. Vzhledem k tomu, že TemplateBinding
má pouze jednu nastavitelnou vlastnost, která je povinná, není toto podrobné použití typické.
Ve zpracování procesoru WPF XAML je toto rozšíření značek definováno třídou TemplateBindingExtension.
TemplateBinding
je rozšíření pro značkování. Rozšíření značek se obvykle implementují, pokud existuje požadavek, aby hodnoty atributů byly jiné než literální hodnoty nebo názvy obslužných rutin, a požadavek je širší než pouhé vkládání převaděčů typů na určité typy nebo vlastnosti. Všechna rozšíření značek v XAML používají {
a }
znaky v syntaxi atributu, což je konvence, kterou procesor XAML rozpozná, že rozšíření značek musí zpracovat atribut. Další informace naleznete v tématu Rozšíření značek a WPF XAML.
Viz také
.NET Desktop feedback