MVVMCROSS'ta, bir kerelik veri bağlanması, verilerin bağlama kurulduğunda ViewModel'den görünümüne yalnızca bir kez aktarıldığı bir moddur. Bu ilk aktarımdan sonra, bağlanma değişiklikleri izlemez ve bağlayıcı kaynağın kendisi sıfırlanmadıkça herhangi bir güncelleme gerçekleştirmez. Bir kerelik veri bağlama için bazı yaygın kullanım durumları:
1. Dil dosyalarından statik metin: Bir kerelik bağlama, dil dosyalarından statik metin ayarlarken özellikle kullanışlıdır. Dil seçildikten sonra, kullanıcının değiştirmesi nadirdir, bu nedenle sürekli güncellemelere gerek yoktur. Bu yaklaşım, gerçekleşmesi muhtemel olmayan değişiklikler için gereksiz kontrollerden kaçındığı için temiz ve verimli bir bağlanma kurulumunun sürdürülmesine yardımcı olur [2].
2. Yapılandırılabilir ancak nadiren değişen veriler: Yapılandırılabilen ancak başlangıçta ayarlandıktan sonra sık sık değişme eğiliminde olmayan alanlar için, bir kerelik bağlanma faydalı olabilir. Bu, başlatma sırasında ayarlanan ve uygulamanın çalışma zamanı boyunca sabit kalan ayarları veya verileri içerir.
3. Performans Optimizasyonu: Tek yönlü bağlamalar kullanmak için genellikle performans cezası olmasa da, bir kerelik bağlar, değişim algılamasıyla ilişkili herhangi bir potansiyel yükü ortadan kaldırarak performansı daha da optimize edebilir. Bu, verilerin statik olduğu bilinen ve güncelleme gerektirmediği senaryolarda özellikle ilgili olabilir.
4. Gereksiz güncellemelerin azaltılması: Verilerin çoğunlukla statik olduğu ve yalnızca bir kez görüntülenmesi gereken durumlarda, bir kerelik bağlanma kullanmak gereksiz güncellemeleri önler. Bu, özellikle karmaşık veya veri yoğun uygulamalarda, sık sık yapılan kontrollerle ilişkili hesaplama yükünün azaltılmasına yardımcı olabilir.
5. Koşullu mantığın basitleştirilmesi: Statik veriler için bir kerelik bağlama kullanarak, geliştiriciler ekran düzeni veya veri sunumu ile ilgili koşullu mantığı basitleştirebilir. Bu, dinamik veri işlemesini statik veri ekranından ayırarak daha temiz bir kod tabanının korunmasına yardımcı olur.
Özetle, MVVMCross'ta bir kerelik veri bağlanması, verilerin statik veya nadiren değiştiği senaryolar için idealdir ve sürekli değişim izleme genel giderleri olmadan verimli ve basit veri sunumuna izin verir.
Alıntılar:[1] https://blog.
[2] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[3] https://www.reddit.com/r/androiddev/comments/ux9379/what_are_the_use_cases_of_data_binding_and_and_when/
[4] https://www.mvvmcross.com/documentation/adved/custom-data-binding
[5] https://stackoverflow.com/questions/48910503/binding-mode-onetime-in-mvxrecyclerview
[6] http://stackoverflow.com/questions/10700445/in-mvvmcross-do-do---do-custom.-bind-properties
[7] https://stackoverflow.com/questions/25460030/who-to-use-mvmcross-data-bindings
[8] https://github.com/mvvmcross/mvvmcross/issues/421
[9] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross