Biçimlendirme Uzantısı Bağlama
Bir özellik değerini veriye bağlı değer olacak şekilde karşılar, ara ifade nesnesi oluşturur ve çalışma zamanında öğe ve bağlaması için geçerli olan 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 dizimlerde [] ve * değişmez değişmez değildir. Bunlar, sıfır veya daha fazla bindProp değer çifti ile aralarında bir ayırıcı ve önceki bindPropdeğer çiftleri ile birlikte kullanılaacağını belirten bir belirteci kapsamındadır.
Bunun yerine bir nesne öğesinin öznitelikleri kullanılarak "Bağlama Uzantısı ile Ayarlanabilirsiniz Bağlama Özellikleri" bölümünde listelenen Binding özelliklerden herhangi biri ayarlandırabilirsiniz. Ancak, bu gerçekten işaretleme uzantısı kullanımı değildir, yalnızca CLR sınıfının özelliklerini ayaran özniteliklerin Binding genel XAML Binding işlemesidir. Başka bir deyişle <Binding<Binding="=""["[valueN, ifade kullanımı yerine nesne öğesi kullanımının öznitelikleri için ="=""]*/> eşdeğer bir söz BindingBinding dizimidir. 'nin belirli özelliklerinin XAML öznitelik kullanımı hakkında bilgi edinmek için Sınıf Kitaplığı'nın ilgili özelliğinin Binding "XAML Öznitelik Binding Kullanımı" bölümüne .NET Framework bakın.
XAML Değerleri
bindProp1, bindPropN |
Ayar için Binding veya BindingBase özelliğinin adı. Tüm özellikler uzantıyla ayarlanmaz ve bazı özellikler yalnızca iç içe geçmiş işaretleme uzantıları kullanılarak bir ifade BindingBinding içinde Binding ayarlanmaz. Bkz. "Bağlama Uzantısı ile Ayarlan neler Olabilir Bağlama Özellikleri" bölümüne bakın. |
value1, valueN |
Özelliğinin ayar değeri. Öznitelik değerinin işlenmesi, belirli bir özelliğin türüne ve mantığına Binding nihai olarak özeldir. |
path |
Örtülü özelliği ayar alan yol Binding.Path dizesi. Ayrıca bkz. PropertyPath XAML Söz Dizimi. |
Unqualified {Binding}
{Binding}"Bağlama İfade Kullanımı" içinde gösterilen kullanım, başlangıç değeri içeren Binding varsayılan değerlerle bir nesnesi Binding.Pathnull oluşturur. Oluşturulan, çalışma zamanı veri bağlamında ve gibi temel veri bağlama özelliklerine bağlı olabileceği için bu, birçok senaryoda BindingBinding.Path hala Binding.Source yararlıdır. Veri bağlamı kavramı hakkında daha fazla bilgi için bkz. Veri Bağlama.
Örtülü Yol
İşaretleme uzantısı, ifadede görünmesi gerek görünmeden BindingBinding.Path kavramsal bir Path= "varsayılan özellik" olarak kullanır. Bir ifadeyi örtülü yol ile belirtirsiniz, özelliğin ad tarafından belirtiliyor olduğu diğer çiftlerin öncesinde, örtülü yol ifadede ilk BindingbindProp=valueBinding olarak görünebilmelidir. Örneğin: , burada, işaretleme uzantısı kullanımı tarafından oluşturulan içinde değeri olarak {Binding PathString}PathStringBinding.PathBinding değerlendirilen bir dizedir. Virgül ayırıcıdan sonra diğer adlandırılmış özelliklerle örtülü bir yol ekebilirsiniz, örneğin, {Binding LastName, Mode=TwoWay} .
Bağlama Uzantısıyla Ayarlanabilirsiniz Bağlama Özellikleri
bu konuda gösterilen söz dizimi genel yaklaşık değeri kullanır çünkü veya biçimlendirme uzantısı/ ifade söz dizimi aracılığıyla ayarlanacak birçok bindProp=valueBindingBaseBindingBinding okuma/yazma özelliği vardır. Bunlar, örtülü bir dışında herhangi bir sırayla ayarlansa Binding.Path da. (Açıkça belirtme seçeneğiniz Path= vardır, bu durumda herhangi bir sırayla ayarlandırabilirsiniz). Temelde, virgülle ayrılmış çiftleri kullanarak aşağıdaki listede yer alan sıfır veya daha bindProp=value fazla özelliği ayarlayabilirsiniz.
Bu özellik değerlerinden birkaçı, XAML'deki bir metin söz dizimlerinden yerel tür dönüştürmesini desteklemeyen nesne türlerini gerektirir ve bu nedenle öznitelik değeri olarak ayar için işaretleme uzantıları gerektirir. Daha fazla bilgi için her özellik için .NET Framework Sınıf Kitaplığı'nın XAML Öznitelik Kullanımı bölümünü denetleyin; daha fazla işaretleme uzantısı kullanımı olan veya olmayan XAML özniteliği söz dizimi için kullanılan dize temelde bir ifadede belirttiğiniz değerle aynıdır ve ifadede her biri için tırnak işareti Binding eklemezsiniz. bindProp=valueBinding
BindingGroupName: olası bir bağlama grubunu tanımlayan bir dize. Bu görece gelişmiş bir bağlama kavramıdır; için başvuru sayfasına BindingGroupName bakın.
BindsDirectlyToSource: Boolean, veya
truefalseolabilir. Varsayılan değer:false.Converter: ifadesinde bir dize olarak ayarlansa da, bunu yapmak için
bindProp=valueConverterUzantısı gibi değer için 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 standart tabanlı tanımlayıcı olarak ayarlanmıştır; için başvuru konu başlığına ConverterCulture bakın.
ConverterParameter: ifadesinde dize olarak ayarlansa da bu,
bindProp=valuegeçirilen parametrenin türüne bağlıdır. Değer için bir başvuru türü geçiyorsa, bu kullanım iç içe StaticResourceBiçimlendirme Uzantısı gibi bir nesne başvurusu gerektirir.ElementName: ve yerine birbirini RelativeSourceSource dışlar; bu bağlama özelliklerinin her biri belirli bir bağlama yöntemini temsil eder. Bkz. Veri Bağlamaya Genel Bakış.
FallbackValue: ifadesinde dize
bindProp=valueolarak ayarlansa da bu değer geçirilen değerin türüne bağlıdır. Bir başvuru türü geçiyorsa, iç içe StaticResourceİşaretleme Uzantısı gibi bir nesne başvurusu gerektirir.IsAsync: Boolean, veya
truefalseolabilir. Varsayılan değer:false.Mode: Mode sabit sabit bir BindingMode addır. Örneğin,
{Binding Mode=OneWay}.NotifyOnSourceUpdated: Boolean, veya
truefalseolabilir. Varsayılan değer:false.NotifyOnTargetUpdated: Boolean, veya
truefalseolabilir. Varsayılan değer:false.NotifyOnValidationError: Boolean, veya
truefalseolabilir. Varsayılan değer:false.Path: bir veri nesnesine veya genel bir nesne modeline giden yolu açıklayan bir dize. biçimi, bu konuda yeterince açık bulunamaz bir nesne modelini çapraz geçiş için birkaç farklı kural sağlar. Bkz. PropertyPath XAML Söz Dizimi.
RelativeSource: ve ile karşılıklı ElementNameSource dışlar; bu bağlama özelliklerinin her biri belirli bir bağlama yöntemini temsil eder. Bkz. Veri Bağlamaya Genel Bakış. Değeri belirtmek için iç içe bir RelativeSource MarkupExtension kullanımı gerektirir.
Source: ve yerine birbirini RelativeSourceElementName dışlar; bu bağlama özelliklerinin her biri belirli bir bağlama yöntemini temsil eder. Bkz. Veri Bağlamaya Genel Bakış. İç içe uzantı kullanımı gerektirir; genellikle anahtarlanmış kaynak sözlüğünden bir nesne veri kaynağına başvuran StaticResource Biçimlendirme Uzantısı.
StringFormat: bağlı veriler için bir dize biçimi kuralı açıklayan bir dize. Bu görece gelişmiş bir bağlama kavramıdır; için başvuru sayfasına StringFormat bakın.
TargetNullValue: ifadesinde dize olarak ayarlansa da bu,
bindProp=valuegeçirilen parametrenin türüne bağlıdır. Değer için bir başvuru türü geçiyorsa, iç içe StaticResourceBiçimlendirme Uzantısı gibi bir nesne başvurusu gerektirir.UpdateSourceTrigger: UpdateSourceTrigger sabit sabit bir UpdateSourceTrigger 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: Boolean, veya
truefalseolabilir. Varsayılan değer:false. Bkz. Açıklamalar.ValidatesOnExceptions: Boolean, veya
truefalseolabilir. Varsayılan değer:false. Bkz. Açıklamalar.XPath: BIR 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 Binding uzantısı/ ifade formu kullanılarak Binding ayarlanamaz özellikleri {Binding} ve bulunmaktadır.
UpdateSourceExceptionFilter: Bu özellik bir geri çağırma uygulamasına başvuru bekler. XAML söz dizimsinde olay işleyicileri dışında geri çağırmalara/yöntemlere başvuruamaz.
ValidationRules: özelliği nesnelerin genel bir koleksiyonunu ValidationRule alır. Bu, nesne öğesinde bir özellik öğesi olarak ifade olabilir, ancak bir ifadede kullanım için kullanılabilir öznitelik ayrıştırma Binding tekniği
Bindingyoktur. için başvuru konu başlığına ValidationRules 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 değer Binding ayarsanız, Binding tamamen kaldırılır. Ayrıntılar için bkz. Bağımlılık Özelliği Değeri Önceliği.
Veri bağlamayı temel düzeyde açıklama bu konuda ele değildir. Bkz. Veri Bağlamaya Genel Bakış.
Not
MultiBinding ve PriorityBinding bir XAML uzantısı söz dizimini desteklemez. Bunun yerine özellik öğelerini kullanabilirsiniz. ve için başvuru konularına MultiBindingPriorityBinding bakın.
XAML için Boole değerleri büyük/küçük harfe duyarlıdır. Örneğin, ya da belirtebilirsiniz {Binding NotifyOnValidationError=true}{Binding NotifyOnValidationError=True} .
Veri doğrulamayı içeren bağlamalar genellikle ifade olarak değil açık bir öğe tarafından belirtilir Binding{Binding ...} ve ValidatesOnDataErrorsValidatesOnExceptions bir ifadede veya bir ifadede ayarlanması çok seyrek olur. Bunun nedeni, yardımcı özelliğin ValidationRules ifade biçiminde kolayca ayarlanamamasıdır. Daha fazla bilgi için bkz. bağlama doğrulamasını uygulama.
Binding bir biçimlendirme uzantısıdır. Biçimlendirme uzantıları genellikle öznitelik değerlerinin sabit değerler veya işleyici adlarından farklı olması için bir gereksinim olduğunda uygulanır ve gereksinim, belirli tür veya özelliklere sahip tür dönüştürücülerden daha geneldir. XAML 'deki tüm biçimlendirme uzantıları, {} öznitelik sözdiziminde ve karakterlerini kullanır. Bu, XAML işlemcisinin bir biçimlendirme uzantısının dize içeriğini işlemesi gerektiğini tanıdığı bir kuraldır. Daha fazla bilgi için bkz. Biçimlendirme uzantıları ve WPF XAML.
Binding , Binding WPF 'nın xaml uygulamasına yönelik uzantı işlevselliğini uygulayan sınıfın Ayrıca XAML ile ilgili olmayan diğer birçok yöntemi ve özelliği de uyguladığı bir tipik biçimlendirme uzantısıdır. Diğer Üyeler, Binding XAML biçimlendirme uzantısı olarak çalışmaya ek olarak birçok veri bağlama senaryosunu ele alan daha çok yönlü ve kendi kendine içerilen bir sınıf oluşturmak için tasarlanmıştır.