Artık .NET Framework 4.5 Preview ile gelen yeni API ler sayesinde WPF uygulamalarındaki bir data binding ifadesindeki hedef nesne,kaynak nesne ve ilgili özellikleri gibi bilgileri alabiliyoruz. Bunları aşağıdaki BindingExpression sınıfına gelen yeni özellikleri kullanarak gerçekleştirebiliriz.

Data binding bilgilerin alabilmek için öncelikle BindingOperations sınıfının GetBindingExpression isimli statik metodunu çağırarak binding ifademizi alıyoruz. Daha sonra yukarıdaki özellikleri kullanarak gerekli bilgileri alabiliriz.

Dilerseniz hemen bu yeni APIlerimizi kullanarak basit bir örnek üzerinde görelim. Aşağıdaki gibi bir XAML'ımızın olduğunu düşünelim ve kod tarafında, XAML 'da oluşturduğumuz binding ifadesinin bilgilerini alalım.

[XAML]
<StackPanel>  
   <TextBox x:Name="myTextBox" Width="200" />
   <TextBlock x:Name="myTextBlock" Text="{Binding ElementName=myTextBox,Path=Text}"  Margin="5"/>           
</StackPanel>  
[C#]
//Binding ifadesini alıyoruz  
var bindingExpression = BindingOperations.GetBindingExpression(myTextBlock, TextBlock.TextProperty);  
//Binding yapılan nesnemiz (TextBlock)
DependencyObject target = bindingExpression.Target;  
//Binding yapılan nesnemizin ilgili özelliği (TextBlock.Text)
DependencyProperty targetProperty = bindingExpression.TargetProperty;  
//Binding yaptığımız kaynak nesne (TextBox)
object source = bindingExpression.ResolvedSource;  
//Binding yaptığımız kaynak nesnenin ilgili özelliği (TextBox.Text)
string sourceName = bindingExpression.ResolvedSourcePropertyName;  

Kısaca bir data binding ifadesindeki binding bilgilerini aldık. Eğer ifadeniz BindingGroup içeriyorsa BindingGroup özelliğini kullanarak bilgilerine ulaşabilirsiniz.

About the Author