Bu yazımda data binding işlemlerinde kullanılan binding modlar hakkında bilgi vermek istiyorum.Binding modları kullanarak kaynak ile hedef arasındaki veri akışını kontrol edebiliriz.Özellikle bazı durumlarda verilerimizin kaynaktan hedefe gibi tek yönlü akmasını isteriz.Aşağıdaki tabloda binding modların bir listesini ve hangi modun ne işe yaradığını bulabilirsiniz.

OneWay
OneWay mod tablodaki açıklamada da belirtildiği gibi tek yönlü bir veri akışı söz konusudur.Bu akış da kaynaktan hedefe doğrudur.Kaynak property de herhangi bir değişiklik olduğunda bu değişiklik hedef property eye de yansımaktadır.
TwoWay
En sık kullanılan modlardan birisidir.OneWay moda ek olarak hedeften kaynağa veri akışı da sağlamaktadır.
OneTime
OneTime mod ise aslında bazı yerlerde çok kullanışlı olabilmektedir.Bu mod ile kaynaktan hedefe doğru sadece bir kez binding işlemi söz konusudur.
OneWayToSource
İsminden de anlaşılacağı gibi OneWay modun tam tersi işlemi yerine getirmektedir.Hedef property de olan bir değişiklik kaynağa yansıtılmaktadır.
<TextBox x:Name="txtSource"/>
<TextBox Text="{Binding ElementName=txtName,Path=Text,Mode=OneWay}"/>
Yukarıdaki kodda binding modların kullanılışını gösteren bir örnek bulunmaktadır.Buradaki kodda dikkat ederseniz OneWay mod kullanılmış.Yani üstteki TextBox’a girilen metnin aynısı binding işlemleri sayesinde alttaki TextBox’ta da görülecektir.Fakat alttaki kutucukta yapılan değişiklik kaynak TextBox’ın Text property’sinde herhangi bir değişikliğe sebep olmayacaktır. Aşağıdaki şekilde kolay bir şekilde modlar arasındaki farkları görebilirsiniz.
Kod Tarafında Binding İşlemi
Binding binding = new Binding();
binding.Source = txtSource;
binding.Path = new PropertyPath("Text");
binding.Mode = BindingMode.OneWay;
txtTarget.SetBinding(TextBlock.TextProperty, binding);
Yukarıda bahsettiğim modlar arasındaki farkı daha iyi anlamanız için yukarıdaki örnek kodun modlarını değiştirmenizi tavsiye ederim.
Hepinize kolay gelsin.