TemplateBinding biçimlendirme uzantısı
Denetim şablonundaki bir özelliğin değerini, şablonlanmış denetimdeki başka bir özelliğin değeri olacak şekilde bağlar.
XAML Öznitelik Kullanımı
<object property="{TemplateBinding sourceProperty}" ... />
XAML Öznitelik Kullanımı (şablon veya stildeki Setter özelliği için)
<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" ... />
XAML Değerleri
Değer | Açıklama |
---|---|
propertyName |
Özelliğin ayarlayıcı söz diziminde DependencyProperty.Name olarak ayarlanması. |
sourceProperty |
Şablonlanan tür üzerinde var olan ve DependencyProperty.Nametarafından belirtilen başka bir bağımlılık özelliği. -veya- Şablonlanan hedef türden farklı bir tür tarafından tanımlanan "noktalarla ayrılmış" özellik adı. Bu aslında bir PropertyPath. Bkz. PropertyPath XAML Sözdizimi. |
Açıklamalar
TemplateBinding
, {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}
ile yapılan bir Binding
'ye benzer şekilde, şablon senaryoları için optimize edilmiş bir Binding
biçimidir. özellikler varsayılan olarak iki yönlü bağlamaya dahil olsa bile, TemplateBinding
her zaman tek yönlü bağlamadır. İlgili her iki özellik de bağımlılık özellikleri olmalıdır. Şablonlu bir üst öğeye iki yönlü bağlama elde etmek için {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}
yerine aşağıdaki bağlama deyimini kullanın.
RelativeSource, bazen bir şablon içinde göreli özellik bağlaması gerçekleştirmek için TemplateBinding
yerine veya ile birlikte kullanılan başka bir işaretleme uzantısıdır.
Denetim şablonlarını kavram olarak açıklama burada ele alınmamıştır; Daha fazla bilgi için bkz. denetim stilleri ve şablonları
Öznitelik söz dizimi, bu işaretleme uzantısıyla kullanılan en yaygın söz dizimidir.
TemplateBinding
tanımlayıcı dizesinden sonra sağlanan dize belirteci, temel alınan TemplateBindingExtension uzantı sınıfının Property değeri olarak atanır.
Nesne öğesi söz dizimi mümkündür, ancak gerçekçi bir uygulaması olmadığından gösterilmez.
TemplateBinding
, değer ayarlayıcılar içindeki değerleri doldurmak, değerlendirilen ifadeler kullanmak ve <Setter.Property>
özellik öğesi söz dizimini doldurmak için TemplateBinding
için nesne öğesi söz dizimini kullanmak gereksiz yere ayrıntılıdır.
TemplateBinding
, Property özelliğini property=value çifti olarak belirten ayrıntılı bir öznitelik kullanımında da kullanılabilir:
<object property="{TemplateBinding Property=sourceProperty}" ... />
Birden fazla ayarlanabilir özelliği olan uzantılarda veya bazı özelliklerin isteğe bağlı olduğu durumlarda ayrıntılı kullanım genellikle yararlıdır.
TemplateBinding
'nın yalnızca gerekli olan bir ayarlanabilir özelliği bulunduğundan, bu kapsamlı kullanım tipik değildir.
WPF XAML işlemci uygulamasında, bu işaretleme uzantısının işlenmesi TemplateBindingExtension sınıfı tarafından tanımlanır.
TemplateBinding
bir işaretleme uzantısıdır. İşaretleme uzantıları, genellikle öznitelik değerlerinin sabit değerler ya da işleyici isimlerinden farklı olması gerektiğinde uygulanır ve bu gereksinim, belirli türlere veya özelliklere tür dönüştürücü yerleştirmekten daha geniş kapsamlıdır. XAML'deki tüm işaretleme uzantıları, öznitelik söz diziminde {
ve }
karakterleri kullanır. Bu, XAML işlemcisinin işaretleme uzantısının özniteliği işlemesi gerektiğini tanıdığı kuraldır. Daha fazla bilgi için bkz. biçimlendirme uzantıları ve WPF XAML.
Ayrıca bkz.
- Style
- ControlTemplate
- Stil oluşturma ve Şablon oluşturma
- WPF'de XAML
- Markup uzantıları ve WPF XAML
- relativesource markupextension
- bağlama biçimlendirme uzantısı
.NET Desktop feedback