Udostępnij za pośrednictwem


TemplateBinding — Rozszerzenie znaczników

Łączy wartość właściwości w szablonie formantu w taki sposób, że staje się ona wartością innej właściwości w formancie z szablonem.

Użycie atrybutu języka XAML

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

Użycie atrybutu języka XAML (we właściwości settera w szablonie lub stylu)

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

Wartości XAML

Wartość Opis
propertyName DependencyProperty.Name właściwości ustawianej w składni ustawiającej.
sourceProperty Inna właściwość zależności, która istnieje na typie, który jest szablonowany, określony przez element DependencyProperty.Name.

- lub -

„Spisana” nazwa właściwości definiowana przez typ inny niż docelowy typ, dla którego jest ustawiany szablon. Jest to rzeczywiście .PropertyPath Zobacz PropertyPath XAML Syntax (Składnia XAML propertyPath).

Uwagi

A TemplateBinding jest zoptymalizowaną formą Binding scenariuszy szablonu, analogiczną do Binding konstrukcji z elementem {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}. Element to TemplateBinding zawsze jednokierunkowe powiązanie, nawet jeśli właściwości obejmowały ustawienie domyślne powiązania dwukierunkowego. Obie używane właściwości muszą być właściwościami zależności. Aby uzyskać dwukierunkowe powiązanie z szablonowym elementem nadrzędnym, użyj następującej instrukcji powiązania zamiast {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}.

RelativeSource to inne rozszerzenie znaczników, które jest czasami używane w połączeniu z lub zamiast TemplateBinding w celu wykonania względnego powiązania właściwości w szablonie.

Opisywanie szablonów kontrolek jako koncepcji nie jest tutaj omówione; Aby uzyskać więcej informacji, zobacz Style i szablony kontrolek.

Składnią atrybutu jest składnia najczęściej używana z tym rozszerzeniem znacznika. Token ciągu podany po przypisaniu ciągu identyfikatora TemplateBinding jako Property wartości podstawowej TemplateBindingExtension klasy rozszerzenia.

Można wprowadzić składnię obiektów, jednak nie pokazano jej tutaj, ponieważ nie ma praktycznego zastosowania. TemplateBinding Służy do wypełniania wartości w elementach setter, przy użyciu obliczonych wyrażeń, a składnia elementu obiektu w TemplateBinding celu wypełnienia <Setter.Property> składni elementu właściwości jest niepotrzebnie pełne.

TemplateBinding Można również użyć w pełnym użyciu atrybutu, który określa Property właściwość jako parę property=value:

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

Szczegółowe definicje są często przydatne w rozszerzeniach zawierających więcej niż jedną konfigurowalną właściwość albo gdy niektóre właściwości są opcjonalne. Ponieważ TemplateBinding ma tylko jedną właściwość settable, która jest wymagana, to pełne użycie nie jest typowe.

W implementacji procesora WPF XAML obsługa tego rozszerzenia znaczników jest definiowana przez klasę TemplateBindingExtension .

TemplateBinding to rozszerzenie znaczników. Rozszerzenia znaczników są zazwyczaj implementowane w sytuacji, gdy istnieje wymóg, aby wartości atrybutów były wyprowadzane w postaci innej niż wartości literałów lub nazwy programów obsługi, a wymóg ma charakter bardziej globalny niż zwykłe umieszczenie konwerterów typów w niektórych typach lub właściwościach. Wszystkie rozszerzenia znaczników w języku XAML używają { znaków i } w ich składni atrybutu, która jest konwencją, zgodnie z którą procesor XAML rozpoznaje, że rozszerzenie znaczników musi przetworzyć atrybut. Aby uzyskać więcej informacji, zobacz Rozszerzenia znaczników i WPF XAML.

Zobacz też