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ż
.NET Desktop feedback