Sdílet prostřednictvím


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é