TemplateBinding – rozšíření značek
Propojuje hodnotu vlastnosti v šabloně ovládacího prvku s hodnotou jiné vlastnosti ovládacího prvku bez vizuálního vzhledu.
Použití atributu XAML
<object property="{TemplateBinding sourceProperty}" ... />
Použití atributu XAML (pro vlastnost Setter v šabloně nebo stylu)
<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" ... />
Hodnoty XAML
Hodnota | Popis |
---|---|
propertyName |
DependencyProperty.Name vlastnosti, která je nastavena v syntaxi setter. |
sourceProperty |
Další vlastnost závislosti, která existuje u typu, který je šablona určena jeho DependencyProperty.Name. - nebo - Název vlastnosti specifikovaný s použitím teček, který je definován jiným typem než cílovým typem bez vizuálního vzhledu. To je vlastně .PropertyPath Viz syntaxe XAML pro cestu k vlastnostem. |
Poznámky
A TemplateBinding
je optimalizovaná forma Binding
pro scénáře šablony, podobně jako Binding
konstrukce s {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}
. A TemplateBinding
je vždy jednosměrná vazba, i když vlastnosti mají výchozí obousměrnou vazbu. Obě vlastnosti musejí být vlastnosti závislostí. K dosažení obousměrné vazby s nadřazenou šablonou použijte místo toho následující příkaz {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}
vazby .
RelativeSource je další rozšíření značek, které se někdy používá ve spojení s nebo namísto TemplateBinding
toho, aby bylo možné provádět relativní vazby vlastností v rámci šablony.
Popis šablon ovládacích prvků jako koncept zde není popsaný; Další informace naleznete v tématu Styly a šablony ovládacích prvků.
Nejčastějším typem syntaxe, která se používá u tohoto rozšíření značek, je syntaxe atributu. Řetězcový token poskytnutý po řetězci identifikátoru TemplateBinding
je přiřazen jako Property hodnota podkladové TemplateBindingExtension třídy rozšíření.
Je možné použít syntaxi elementu objektu, kterou ale neuvádíme, protože nemá žádné reálné použití. TemplateBinding
slouží k vyplnění hodnot v rámci setters, pomocí vyhodnocovaných výrazů a použití syntaxe elementu objektu pro TemplateBinding
vyplnění <Setter.Property>
syntaxe elementu property je zbytečně podrobné.
TemplateBinding
lze také použít ve podrobném použití atributu Property , který určuje vlastnost jako parametr property=value pair:
<object property="{TemplateBinding Property=sourceProperty}" ... />
Použití podrobné syntaxe je často užitečné pro rozšíření, která mají více než jednu nastavitelnou vlastnost, nebo v případě, že jsou některé vlastnosti volitelné. Vzhledem k tomu TemplateBinding
, že má pouze jednu nastavenou vlastnost, která je povinná, toto podrobné použití není typické.
V implementaci procesoru WPF XAML je zpracování tohoto rozšíření značek definováno TemplateBindingExtension třídou.
TemplateBinding
je rozšíření značek. Rozšíření značek jsou obvykle implementována v případě požadavku, aby díky použití řídicí sekvence mohly být hodnoty atributů něčím jiným než literálními hodnotami nebo názvy obslužných rutin, a tento požadavek má tak rozsáhlou platnost, že nestačí jednoduše použít převaděče typů pro určité typy nebo vlastnosti. Všechna rozšíření značek v XAML používají {
}
znaky v syntaxi atributu, což je konvence, kterou procesor XAML rozpozná, že rozšíření značek musí atribut zpracovat. Další informace naleznete v tématu Rozšíření značek a WPF XAML.
Viz také
.NET Desktop feedback