Biçimlendirme Uzantısı Bağlama
Bir özellik değerini veriye bağlı bir değer olarak saptırarak bir ara ifade nesnesi oluşturur ve çalışma zamanında öğeye ve bağlamasına uygulanan veri bağlamını yorumlar.
Bağlama İfadeSi Kullanımı
<object property="{Binding}" .../>
-or-
<object property="{Binding bindProp1=value1[, bindPropN=valueN]*}" ...
/>
-or-
<object property="{Binding path}" .../>
-or
<object property="{Binding path[, bindPropN=valueN]*}" .../>
Söz Dizimi Notları
Bu söz dizimlerinde ve []
*
değişmez değer değildir. Bunlar, sıfır veya daha fazla bindProp=
değer çiftinin, aralarında bir ayırıcı ile bindProp değer çiftleri arasında bir ayırıcıyla birlikte kullanılabileceğini belirten bir ,
gösterimin =
parçasıdır.
"Bağlama Uzantısıyla Ayarlanabilen Bağlama Özellikleri" bölümünde listelenen özelliklerden herhangi biri bunun yerine bir Binding nesne öğesinin öznitelikleri kullanılarak ayarlanabilir. Ancak, bu gerçekten 'in Bindingişaretleme uzantısı kullanımı değildir, yalnızca CLR Binding sınıfının özelliklerini ayarlayan özniteliklerin genel XAML işlemesidir. Başka bir deyişle, <Binding
bindProp1 value1="
"[
bindPropN valueN="
"]*/>
, ifade kullanımı yerine nesne öğesi kullanımı öznitelikleri Binding için eşdeğer bir Binding
söz dizimidir. 'nin belirli özelliklerinin BindingXAML öznitelik kullanımı hakkında bilgi edinmek için .NET Framework Sınıf Kitaplığı'ndaki ilgili özelliğinin Binding "XAML Öznitelik Kullanımı" bölümüne bakın.
XAML Değerleri
Value | Açıklama |
---|---|
bindProp1, bindPropN |
Ayarlanacağı veya BindingBase özelliğinin Binding adı. Tüm Binding özellikler uzantıyla Binding ayarlanamaz ve bazı özellikler bir Binding ifade içinde yalnızca daha fazla iç içe işaretleme uzantısı kullanılarak ayarlanabilir. "Bağlama Uzantısı ile Ayarlanabilen Bağlama Özellikleri" bölümüne bakın. |
value1, valueN |
Özelliğinin ayarlanacağı değer. Öznitelik değerinin işlenmesi, nihai olarak ayarlanan özelliğin Binding türüne ve mantığına özgüdür. |
path |
Örtük Binding.Path özelliği ayarlayan yol dizesi. Ayrıca bkz. PropertyPath XAML Sözdizimi. |
Nitelenmemiş {Binding}
{Binding}
"Bağlama İfadeSi Kullanımı" içinde gösterilen kullanım, varsayılan değerlere sahip bir Binding nesnesi oluşturur ve bu nesnenin ilk harfini Binding.Path null
içerir. Oluşturulan Binding , çalışma zamanı veri bağlamında ve gibi Binding.Path Binding.Source anahtar veri bağlama özelliklerine bağlı olabileceğinden, bu durum birçok senaryoda hala yararlıdır. Veri bağlamı kavramı hakkında daha fazla bilgi için bkz . Veri Bağlama.
Örtük Yol
İşaretleme Binding
uzantısı, ifadede görünmesi gerekmeyen Path=
kavramsal bir "varsayılan özellik" olarak kullanırBinding.Path. Örtük yol içeren bir Binding
ifade belirtirseniz, özelliğin ada göre belirtildiği diğervalue
bindProp
=çiftlerden önce örtük yolun ifadede Binding ilk olarak görünmesi gerekir. Örneğin: {Binding PathString}
buradaPathString
, işaretleme uzantısı kullanımı tarafından oluşturulan içinde Binding değeri Binding.Path olarak değerlendirilen bir dizedir. Virgül ayırıcısının arkasına diğer adlandırılmış özelliklerle örtük bir yol ekleyebilirsiniz; örneğin, {Binding LastName, Mode=TwoWay}
.
Bağlama Uzantısı ile Ayarlanabilen Bağlama Özellikleri
bu konuda gösterilen söz dizimi, işaretleme uzantısı / ifade söz dizimi aracılığıyla ayarlanabilen veya Binding birçok okuma/yazma özelliği BindingBase olduğundan genelvalue
=bindProp
yaklaşık değeri kullanır.Binding
Bunlar, örtük Binding.Pathbir hariç olmak üzere herhangi bir sırada ayarlanabilir. (Açıkça belirtme Path=
seçeneğiniz vardır; bu durumda herhangi bir sırada ayarlanabilir). Temel olarak, virgülle ayrılmış çiftleri kullanarak bindProp
=value
aşağıdaki listeden sıfır veya daha fazla özellik ayarlayabilirsiniz.
Bu özellik değerlerinin birkaçı, XAML'deki bir metin söz diziminden yerel tür dönüştürmesini desteklemeyen nesne türleri gerektirir ve bu nedenle öznitelik değeri olarak ayarlanması için işaretleme uzantıları gerektirir. Daha fazla bilgi için her özellik için .NET Framework Sınıf Kitaplığı'ndaki XAML Öznitelik Kullanımı bölümüne bakın; XAML özniteliği söz dizimi için daha fazla işaretleme uzantısı kullanımıyla veya kullanmadan kullandığınız dize, ifadede Binding
belirttiğiniz değerle temel olarak aynıdır; ifadenin Binding
her bindProp
=value
birine tırnak işareti yerleştirmemeniz dışında.
BindingGroupName: olası bir bağlama grubunu tanımlayan bir dize. Bu, nispeten gelişmiş bir bağlama kavramıdır; için BindingGroupNamebaşvuru sayfasına bakın.
BindsDirectlyToSource: Boole, veya
false
olabilirtrue
. Varsayılan değer:false
.Converter: ifadesinde bir
bindProp
=value
dize olarak ayarlanabilir, ancak bunu yapmak için değer için StaticResource İşaretlemesi Uzantısı gibi bir nesne başvurusu gerekir. Bu örnekteki değer, özel dönüştürücü sınıfının bir örneğidir.ConverterCulture: ifadesinde standartlara dayalı tanımlayıcı olarak ayarlanabilir; için ConverterCulturebaşvuru konusuna bakın.
ConverterParameter: ifadesinde bir
bindProp
=value
dize olarak ayarlanabilir, ancak bu, geçirilen parametrenin türüne bağlıdır. Değer için bir başvuru türü geçirilirse, bu kullanım iç içe staticresource biçimlendirme uzantısı gibi bir nesne başvurusu gerektirir.ElementName: karşılıklı olarak dışlama ve RelativeSource ve Source; bu bağlama özelliklerinin her biri belirli bir bağlama metodolojisini temsil eder. Bkz. Veri Bağlamaya Genel Bakış.
FallbackValue: ifadesinde bir
bindProp
=value
dize olarak ayarlanabilir, ancak bu, geçirilen değerin türüne bağlıdır. Bir başvuru türü geçiriyorsanız, iç içe staticresource biçimlendirme uzantısı gibi bir nesne başvurusu gerektirir.IsAsync: Boole, veya
false
olabilirtrue
. Varsayılan değer:false
.Mode: değer , numaralandırmadan BindingMode sabit bir addır. Örneğin,
{Binding Mode=OneWay}
.NotifyOnSourceUpdated: Boole, veya
false
olabilirtrue
. Varsayılan değer:false
.NotifyOnTargetUpdated: Boole, veya
false
olabilirtrue
. Varsayılan değer:false
.NotifyOnValidationError: Boole, veya
false
olabilirtrue
. Varsayılan değer:false
.Path: veri nesnesine veya genel nesne modeline giden yolu açıklayan bir dize. biçimi, bu konuda yeterince açıklanamayan bir nesne modelinin geçişini yapmak için birkaç farklı kural sağlar. Bkz. PropertyPath XAML Sözdizimi.
RelativeSource: ve ile ElementName Sourcekarşılaştırmalı olarak birbirini dışlar; bu bağlama özelliklerinin her biri belirli bir bağlama metodolojisini temsil eder. Bkz. Veri Bağlamaya Genel Bakış. Değeri belirtmek için iç içe RelativeSource MarkupExtension kullanımı gerektirir.
Source: karşılıklı olarak dışlama ve RelativeSource ve ElementName; bu bağlama özelliklerinin her biri belirli bir bağlama metodolojisini temsil eder. Bkz. Veri Bağlamaya Genel Bakış. Genellikle anahtarlı kaynak sözlüğünden nesne veri kaynağına başvuran staticResource biçimlendirme uzantısı olan iç içe uzantı kullanımı gerektirir.
StringFormat: bağlı veriler için bir dize biçimi kuralını açıklayan bir dize. Bu, nispeten gelişmiş bir bağlama kavramıdır; için StringFormatbaşvuru sayfasına bakın.
TargetNullValue: ifadesinde bir
bindProp
=value
dize olarak ayarlanabilir, ancak bu, geçirilen parametrenin türüne bağlıdır. Değer için bir başvuru türü geçiriyorsanız, iç içe staticresource biçimlendirme uzantısı gibi bir nesne başvurusu gerektirir.UpdateSourceTrigger: değer , numaralandırmadan UpdateSourceTrigger sabit bir addır. Örneğin,
{Binding UpdateSourceTrigger=LostFocus}
. Belirli denetimlerin bu bağlama özelliği için farklı varsayılan değerleri olabilir. Bkz. UpdateSourceTrigger.ValidatesOnDataErrors: Boole, veya
false
olabilirtrue
. Varsayılan değer:false
. Bkz. Açıklamalar.ValidatesOnExceptions: Boole, veya
false
olabilirtrue
. Varsayılan değer:false
. Bkz. Açıklamalar.XPath: XML veri kaynağının XMLDOM'sine giden yolu açıklayan dize. Bkz . XMLDataProvider ve XPath Sorguları Kullanarak XML Verilerine Bağlama.
Aşağıda, işaretleme uzantısı/{Binding}
ifade formu kullanılarak ayarlanamayan Binding
özellikleri Binding yer alır.
UpdateSourceExceptionFilter: bu özellik bir geri çağırma uygulamasına başvuru bekler. Olay işleyicileri dışındaki geri çağırmalara/yöntemlere XAML söz diziminde başvurulamaz.
ValidationRules: özelliği genel bir nesne koleksiyonu ValidationRule alır. Bu, bir Binding nesne öğesinde özellik öğesi olarak ifade edilebilir, ancak bir ifadedeki
Binding
kullanım için kullanılabilir öznitelik ayrıştırma tekniği yoktur. için ValidationRulesbaşvuru konusuna bakın.
Açıklamalar
Önemli
Bağımlılık özelliği önceliği açısından ifade, Binding
yerel olarak ayarlanmış bir değere eşdeğerdir. Daha önce bir ifadeye sahip olan bir özellik için yerel bir Binding
değer ayarlarsanız , Binding
tamamen kaldırılır. Ayrıntılar için bkz . Bağımlılık Özelliği Değeri Önceliği.
Temel düzeyde veri bağlamayı açıklama konusu bu konuda ele alınmamıştır. Bkz. Veri Bağlamaya Genel Bakış.
Not
MultiBinding ve PriorityBinding XAML uzantısı söz dizimlerini desteklemez. Bunun yerine özellik öğelerini kullanırsınız. ve PriorityBindingiçin MultiBinding başvuru konularına bakın.
XAML için Boole değerleri büyük/küçük harfe duyarlı değildir. Örneğin, veya {Binding NotifyOnValidationError=True}
belirtebilirsiniz{Binding NotifyOnValidationError=true}
.
Veri doğrulamayı içeren bağlamalar genellikle ifade yerine açık Binding
bir {Binding ...}
öğe tarafından belirtilir ve bir ifadede veya ValidatesOnExceptions ayarı ValidatesOnDataErrors nadirdir. Bunun nedeni, eşlikçi özelliğinin ValidationRules ifade formunda kolayca ayarlanamamasıdır. Daha fazla bilgi için bkz . Bağlama Doğrulaması Uygulama.
Binding
bir işaretleme uzantısıdır. İşaretlemeyi uzantıları genellikle, öznitelik değerlerinin değişmez değerler veya işleyici adlarından farklı olması için bir gereksinim olduğunda uygulanır ve gereksinim, belirli türlerde veya özelliklerde özniteliklenen tür dönüştürücülerinden daha geneldir. XAML'deki tüm işaretleme uzantıları öznitelik söz diziminde ve }
karakterlerini kullanır{
. Bu, bir XAML işlemcisinin işaretleme uzantısının dize içeriğini işlemesi gerektiğini tanıdığı kuraldır. Daha fazla bilgi için bkz . biçimlendirme uzantıları ve WPF XAML.
Binding
, WPF'nin Binding XAML uygulaması için uzantı işlevselliğini uygulayan sınıfın XAML ile ilgili olmayan birkaç yöntem ve özellik de uyguladığı bir atipik işaretleme uzantısıdır. Diğer üyeler, XAML işaretleme uzantısı olarak çalışmaya ek olarak birçok veri bağlama senaryolarını ele alan daha çok yönlü ve bağımsız bir sınıf oluşturmak Binding için tasarlanmıştır.
Ayrıca bkz.
.NET Desktop feedback