Az MVVMCross-ban az egyszeri adatkötés olyan mód, ahol az adatokat a ViewModel-ből a nézetbe továbbítják, csak egyszer, amikor a kötés létrejön. A kezdeti átvitel után a kötés csak nem végzi a változásokat, és csak akkor hajt végre frissítéseket, ha maga a kötési forrás visszaállítja. Íme néhány általános felhasználási eset az egyszeri adatkötéshez:
1. statikus szöveg a nyelvi fájlokból: Az egyszeri kötés különösen akkor hasznos, ha a statikus szöveget a nyelvi fájlokból állítják be. Miután a nyelvet kiválasztották, ritka, hogy a felhasználó megváltoztatja azt, tehát nincs szükség folyamatos frissítésekre. Ez a megközelítés elősegíti a tiszta és hatékony kötési beállítás fenntartását, mivel elkerüli a valószínűtlen változások felesleges ellenőrzését [2].
2. Konfigurálható, de ritkán változó adatok: A konfigurálható, de nem hajlamos a kezdetben történő beállítás után gyakran változó mezőkre, az egyszeri kötés hasznos lehet. Ez magában foglalja az inicializálás során beállított beállításokat vagy adatokat, és állandó marad az alkalmazás futásidejében.
3. Teljesítmény-optimalizálás: Noha általában nincs teljesítménybüntetés az egyirányú kötések használatához, az egyszeri kötések tovább optimalizálhatják a teljesítményt azáltal, hogy kiküszöbölik a változás észlelésével kapcsolatos potenciális általános költségeket. Ez különösen releváns lehet azokban a forgatókönyvekben, amikor az adatokról ismert, hogy statikus, és nem igényel frissítéseket.
4. A felesleges frissítések csökkentése: Azokban az esetekben, amikor az adatok többnyire statikus, és csak egyszer kell megjeleníteni, az egyszeri kötés használata megakadályozza a felesleges frissítéseket. Ez elősegítheti a változásokhoz kapcsolódó számítási általános költségek csökkentését, különösen a komplex vagy adatigényes alkalmazásokban.
5. A feltételes logika egyszerűsítése: A statikus adatok egyszeri kötődésével a fejlesztők egyszerűsíthetik a képernyő elrendezésével vagy az adatok bemutatásával kapcsolatos feltételes logikát. Ez elősegíti a tisztább kódbázis fenntartását azáltal, hogy elválasztja a dinamikus adatkezelést a statikus adatmegjelenítésektől.
Összefoglalva: az MVVMCross egyszeri adatkötése ideális olyan forgatókönyvekhez, amelyekben az adatok statikus vagy ritkán változnak, lehetővé téve a hatékony és egyértelmű adatbemutatót a folyamatos változás megfigyelésének teljes költsége nélkül.
Idézetek:[1] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[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_when/
[4] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[5] https://stackoverflow.com/questions/48910503/binding-mode-onetime-in-mvxrecyclerview
[6] http://stackoverflow.com/questions/10700445/in-mvvmcross-how-do-i-do-custom.-bind-properties
[7] https://stackoverflow.com/questions/25460030/when-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