Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Bir kerelik bağlama, mvvmcross'ta iki yönlü bağlanmadan nasıl farklıdır?


Bir kerelik bağlama, mvvmcross'ta iki yönlü bağlanmadan nasıl farklıdır?


MVVMCross'ta, bir kerelik bağlanma ve iki yönlü bağlanma, görünüm ve viewModel arasındaki etkileşimin yönetilmesinde farklı amaçlara hizmet eder.

Bir kerelik bağlama

Bir kerelik bağlama, ViewModel'den veri, bağlanma kaynağı ayarlandığında yalnızca bir kez görünüme aktarmak için kullanılır. Bu ilk aktarımdan sonra, bağlanma ViewModel'in özelliklerindeki değişiklikleri izlemez ve bağlanma kaynağının kendisi sıfırlanmadıkça görünümü güncellemez. Bu mod, yapılandırılabilen ancak ayarlandıktan sonra sık sık değişmeyen alanlar için kullanışlıdır. Örneğin, MVVMCross'ta, kullanıcı tipik olarak bir dili bir kez seçer ve daha sonra nadiren değiştirdiğinden, dil dosyalarından statik metin ayarlamak için bir kerelik bağlanma kullanılır [1] [10].

İki yönlü bağlama

İki yönlü bağlanma ise, görünüm ve ViewModel arasında sürekli, çift yönlü bir bağlantı kurar. Görünüm veya ViewModel tetikleme güncellemelerindeki değişiklikler diğerinde. Bu mod, hem kullanıcının girişinin hem de ViewModel'den gelen değişikliklerin gerçek zamanlı olarak yansıtılması gereken formları doldurma gibi mevcut verileri düzenlerken özellikle kullanışlıdır. İki yönlü bağlanma MVVMCross'ta yaygın olarak kullanılır ve genellikle yeni bağlamalar için varsayılan mod görevi görür [1] [2].

Anahtar Farklılıklar

-Veri akışının yönü: Bir kerelik bağlama yalnızca ViewModel'den görünümü bir kez güncellerken, iki yönlü bağlanma hem görünümü hem de ViewModel'i sürekli olarak günceller.
-Değiştir izleme: Bir kerelik bağlama ilk güncellemeden sonra değişiklikleri izlemezken, iki yönlü bağlanma her iki ucu da sürekli olarak monitörler ve güncelleştirir.
-Kullanım durumları: Bir kerelik statik veya nadiren değişen veriler için idealdir, oysa iki yönlü etkileşimli formlar veya dinamik veri alışverişi için daha uygundur.

Özetle, statik veya başlangıç ​​veri kurulumu için bir kerelik bağlanma kullanılırken, iki yönlü bağlanma, hem görünümün hem de viewModel'in birbirlerinin değişikliklerini gerçek zamanlı olarak yansıtması gereken etkileşimli senaryolar için kullanılır.

Alıntılar:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://www.mvvmcross.com/documentation/adved/custom-data-binding
[4] https://softwareengineering.stackexchange.com/questions/322450/how-does-two-data-data-binding-deffer-from-simple-sync
[5] https://stackoverflow.com/questions/17156368/
[6] https://yanxiaodi.gitbook.io/xamarin-mvmcross-handbook/using-mvvmcross-to--nroid-project/understing-the-data-binding-syntax
[7] https://stackoverflow.com/questions/13504906/what-is-two-wayinding
[8] https://github.com/mvvmcross/mvvmcross/issues/29
[9] https://stackoverflow.com/questions/27803448/data-binding-one-vs-two-way
[10] https://stackoverflow.com/questions/48910503/binding-mode-onetime-in-mvxrecyclerview
[11] https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-binding/binding-mode?view=net-maui-9.0
[12] https://www.reddit.com/r/javascript/comments/v993r4/askjs_why_is_oneway_binding_better_than_twoway/