Aracılığıyla paylaş


{Binding} işaretleme uzantısı

Uyarı

Windows 10 için performans ve geliştirici üretkenliği için iyileştirilmiş yeni bir bağlama mekanizması mevcuttur. Bkz. {x:Bind} işaretleme uzantısı.

Uyarı

{Binding} ile uygulamanızda veri bağlamayı kullanma hakkında genel bilgi için (ve {x:Bind} ile {Binding}) arasında kapsamlı bir karşılaştırma için bkz. Ayrıntılı veri bağlama.

{Binding} işaretleme uzantısı, denetimlerdeki özellikleri kod gibi bir veri kaynağından gelen değerlere bağlamak için kullanılır. {Binding} işaretleme uzantısı XAML yükleme zamanında Binding sınıfının bir örneğine dönüştürülür. Bu bağlama nesnesi, veri kaynağındaki bir özellikten bir değer alır ve bunu denetimdeki özelliğine iletir. Bağlama nesnesi isteğe bağlı olarak veri kaynağı özelliğinin değerindeki değişiklikleri gözlemlemek ve bu değişikliklere göre kendisini güncelleştirmek üzere yapılandırılabilir. Ayrıca isteğe bağlı olarak değişiklikleri denetim değerine kaynak özelliğe geri göndermek için yapılandırılabilir. Veri bağlamasının hedefi olan özellik bir bağımlılık özelliği olmalıdır. Daha fazla bilgi için bkz . Bağımlılık özelliklerine genel bakış.

{Binding} , yerel değerle aynı bağımlılık özelliği önceliğine sahip ve kesinlik temelli kodda yerel bir değer ayarlamak, işaretlemede ayarlanan tüm {Binding} öğelerinin etkisini kaldırır.

XAML öznitelik kullanımı

<object property="{Binding}" .../>
-or-
<object property="{Binding propertyPath}" .../>
-or-
<object property="{Binding bindingProperties}" .../>
-or-
<object property="{Binding propertyPath, bindingProperties}" .../>
Süre Description
propertyPath Bağlama için özellik yolunu belirten bir dize. Daha fazla bilgi aşağıdaki Özellik yolu bölümündedir.
bindingProperties propName=value[, propName=value]*
Ad/değer çifti söz dizimi kullanılarak belirtilen bir veya daha fazla bağlama özelliği.
propName Binding nesnesinde ayarlanacağı özelliğin dize adı. Örneğin, "Dönüştürücü".
value Özelliğinin ayarlanacağı değer. Bağımsız değişkenin söz dizimi, aşağıdaki {Binding} bölümüyle ayarlanabilen Bağlama sınıfının Özellikleri özelliğine bağlıdır.

Özellik yolu

Path , bağladığınız özelliği (kaynak özellik) açıklar. Path, konumsal bir parametredir; bu da parametre adını açıkça{Binding Path=EmployeeID} () kullanabileceğiniz veya ilk adlandırılmamış parametre ({Binding EmployeeID}) olarak belirtebileceğiniz anlamına gelir.

Yol türü, özel türünüzün veya çerçeve türünüzün herhangi bir özelliğini veya alt özelliğini değerlendiren bir dize olan bir özellik yoludur. Türü bir DependencyObject olabilir, ancak olması gerekmez. Özellik yolundaki adımlar nokta (.) ile sınırlandırılır ve ardışık alt özellikler arasında geçiş yapmak için birden çok sınırlayıcı ekleyebilirsiniz. Bağlı olan nesneyi uygulamak için kullanılan programlama dilinden bağımsız olarak nokta sınırlayıcısını kullanın.

Örneğin, kullanıcı arabirimini bir çalışan nesnesinin ad özelliğine bağlamak için özellik yolunuz "Employee.FirstName" olabilir. Bir öğe denetimini çalışanın bağımlılarını içeren bir özelliğe bağlıyorsanız, özellik yolunuz "Employee.Dependents" olabilir ve öğe denetiminin öğe şablonu öğelerin "Bağımlılar" içinde görüntülenmesini sağlar.

Veri kaynağı bir koleksiyonsa, özellik yolu koleksiyondaki öğeleri konumlarına veya dizinlerine göre belirtebilir. Örneğin, "Teams[0].Players" ifadesinde, köşeli parantezlerdeki "0", bir koleksiyondaki ilk öğeyi belirtir.

Mevcut bir DependencyObject öğesine ElementName bağlaması kullanırken, özellik yolunun bir parçası olarak ekli özellikleri kullanabilirsiniz. Ekli bir özelliği açıkça ayırt etmek ve ara noktanın özellik yolundaki bir adım olarak kabul edilmesini engellemek için, sahip tarafından nitelenmiş ekli özellik adının çevresine parantez ekleyin; örneğin, (AutomationProperties.Name).

Özellik yolu ara nesnesi, bir çalışma zamanı gösteriminde PropertyPath nesnesi olarak depolanır, ancak çoğu senaryoda koddaki bir PropertyPath nesnesiyle etkileşim kurması gerekmez. Genellikle XAML kullanarak ihtiyacınız olan bağlama bilgilerini belirtebilirsiniz.

Özellik yolunun dize söz dizimi, animasyon özellik alanlarındaki özellik yolları ve PropertyPath nesnesi oluşturma hakkında daha fazla bilgi için bkz. Özellik yolu söz dizimi.

{Binding} ile ayarlanabilen Binding sınıfının özellikleri

{Binding}, işaretleme uzantısında ayarlanabilen birden çok okuma/yazma özelliği olduğundan bindingProperties yer tutucu söz dizimi ile gösterilmiştir. Özellikler, virgülle ayrılmış propName=değer çiftleriyle herhangi bir sırada ayarlanabilir. Bazı özellikler, tür dönüşümü yapılamayan türler gerektirir, bu nedenle {Binding} içinde kendi işaretleme uzantılarıyla iç içe geçmiş olmaları gerekir.

Mülkiyet Description
Yol Yukarıdaki Özellik yolu bölümüne bakın.
Dönüştürücü Bağlama altyapısı tarafından çağrılan bir dönüştürücü nesnesi belirtir. Dönüştürücü, işaretlemede {StaticResource} işaretleme uzantısı kullanılarak kaynak sözlüğünden bu nesneye başvurmak için ayarlanabilir.
ConverterLanguage Dönüştürücü tarafından kullanılacak kültürü belirtir. ( Dönüştürücü'leri ayarlıyorsunuz.) Kültür, standartlara dayalı tanımlayıcı olarak ayarlanır. Daha fazla bilgi için bkz . ConverterLanguage
ConverterParameter Dönüştürücü mantığında kullanılabilecek bir dönüştürücü parametresi belirtir. (Eğer bir Dönüştürücü ayarlıyorsanız.) Çoğu dönüştürücü, çevrilecek değerden ihtiyaç duydukları tüm bilgileri alan basit bir mantık kullanır ve bir ConverterParameter değerine ihtiyaç duymaz. ConverterParameter parametresi, ConverterParameter'da geçirilenleri engelleyen koşullu mantığa sahip daha karmaşık dönüştürücü uygulamalarına yöneliktir. Dizeler dışındaki değerleri kullanan bir dönüştürücü yazabilirsiniz, ancak bu sık rastlanmayan bir durumdur, daha fazla bilgi için bkz . ConverterParameter'da açıklamalar.
ÖğeAdı Aynı XAML yapısında Name özelliğine veya x:Name özniteliğine sahip başka bir öğeye başvurarak veri kaynağını belirtir. Bu genellikle, XAML denetim şablonu gibi başka bir öğe için belirli bir değer sağlamak üzere ilgili değerleri paylaşmak veya bir UI öğesinin alt özelliklerini kullanmak için kullanılır.
FallbackValue Kaynak veya yol çözümlenemediğinde görüntülenecek değeri belirtir.
Mod Bağlama modunu şu değerlerden biri olarak belirtir: "OneTime", "OneWay" veya "TwoWay". Bunlar BindingMode sabit listesi sabit adlarına karşılık gelir. Varsayılan değer "OneWay"dir. Bunun "OneTime" olan {x:Bind} için varsayılan değerden farklı olduğunu unutmayın.
RelativeSource Bağlama kaynağının bağlama hedefinin konumuna göre konumunu açıklayarak bir veri kaynağı belirtir. Bu genellikle XAML denetim şablonlarındaki bağlamalarda kullanılır. {RelativeSource} işaretleme uzantısı ayarlanıyor.
Kaynak Nesne veri kaynağını belirtir. Bağlama işaretleme uzantısında, Source özelliği {StaticResource} işaretleme uzantısı başvurusu gibi bir nesne başvurusu gerektirir. Bu özellik belirtilmezse, eylem verileri bağlamı kaynağı belirtir. Tek tek bağlamalarda kaynak değeri belirtmemek ve bunun yerine birden çok bağlama için paylaşılan DataContext'e güvenmek daha normaldir. Daha fazla bilgi için bkz. DataContext veya Data binding in depth.
TargetNullValue Kaynak değer çözümlendiğinde ancak açıkça null olduğunda görüntülenecek değeri belirtir.
UpdateSourceTrigger Bağlama kaynak güncelleştirmelerinin zamanlamasını belirtir. Belirtilmezse, varsayılan Varsayılan'dır.

Uyarı

İşaretlemeyi {x:Bind} yerine {Binding} olarak dönüştürüyorsanız Mode özelliği için varsayılan değerlerdeki farkları unutmayın.

Converter, ConverterLanguage ve ConverterLanguage , bağlama kaynağındaki bir değeri veya türü bağlama hedef özelliğiyle uyumlu bir türe veya değere dönüştürme senaryosuyla ilgilidir. Daha fazla bilgi ve örnek için Ayrıntılı veri bağlamanın "Veri dönüştürmeleri" bölümüne bakın.

Uyarı

Windows 10, sürüm 1607'den itibaren XAML çerçevesi yerleşik bir Boole'dan Görünürlüğe dönüştürücü sağlar. Dönüştürücü, true değerini Visible sabit listesi değerine ve false değerini Collapsed sabit listesi değerine eşler, böylece bir dönüştürücü oluşturmadan bir görünürlük özelliğini Boolean'a bağlayabilirsiniz. Yerleşik dönüştürücüsü kullanmak için uygulamanızın en düşük hedef SDK sürümü 14393 veya üzeri olmalıdır. Uygulamanız Windows 10'un önceki sürümlerini hedeflediğinde kullanamazsınız. Hedef sürümler hakkında daha fazla bilgi için bkz . Sürüm uyarlamalı kod.

Source, RelativeSource ve ElementName bir bağlama kaynağı belirtir, bu nedenle bunlar birbirini dışlar.

Tavsiye

Path veya ConverterParameter gibi bir değer için tek bir küme ayracı belirtmeniz gerekiyorsa, önüne ters eğik çizgi koyun: \{. Alternatif olarak, kaçış gerektiren küme ayraçlarını içeren dizenin tamamını ikincil bir tırnak işareti kümesi içerisine alın (örneğin ConverterParameter='{Mix}').

Örnekler

<!-- binding a UI element to a view model -->
<Page ... >
    <Page.DataContext>
        <local:BookstoreViewModel/>
    </Page.DataContext>

    <GridView ItemsSource="{Binding BookSkus}" SelectedItem="{Binding SelectedBookSku, Mode=TwoWay}" ... />
</Page>
<!-- binding a UI element to another UI element -->
<Page ... >
    <Page.Resources>
        <local:S2Formatter x:Key="GradeConverter"/>
    </Page.Resources>

    <Slider x:Name="sliderValueConverter" ... />
    <TextBox Text="{Binding Path=Value, ElementName=sliderValueConverter,
        Mode=OneWay,
        Converter={StaticResource GradeConverter}}"/>
</Page>

İkinci örnek dört farklı Bağlama özelliği ayarlar: ElementName, Path, Mode ve Converter. Bu durumda Path, bir Binding özelliği olarak adı açıkça belirtilmiş olarak gösterilir. Yol, aynı çalışma zamanı nesne ağacındaki başka bir nesne olan, sliderValueConverter adlı bir Kaydırıcı için bir veri bağlama kaynağı olarak değerlendirilir.

Converter özellik değerinin başka bir işaretleme uzantısı olan {StaticResource} işaretleme uzantısını nasıl kullandığına dikkat edin; bu nedenle burada iki iç içe işaretleme uzantısı kullanımı vardır. kaynak elde edildikten sonra bağlamanın kullanabileceği pratik bir IValueConverter (kaynaklardaki local:S2Formatter öğesi ile örneklenen özel bir sınıf) oluşturulması için önce iç bileşen değerlendirilir.

Araçlar desteği

Microsoft Visual Studio'daki Microsoft IntelliSense, XAML işaretleme düzenleyicisinde {Binding} yazarken veri bağlamının özelliklerini görüntüler. "{Binding" yazdığınız anda, açılan listede Path için uygun veri bağlamı özellikleri görüntülenir. IntelliSense, Bağlama'nın diğer özelliklerine de yardımcı olur. Bunun çalışması için, işaretleme sayfasında veri bağlamı veya tasarım zamanı veri bağlamı ayarlanmış olmalıdır. Tanıma Git (F12), {Binding} ile de çalışır. Alternatif olarak, veri bağlama iletişim kutusunu kullanabilirsiniz.