I MVVMCross används både schweizisk och flytande databindning för att ansluta vyer för att se modeller, men de tjänar något olika syften och föredras i olika scenarier.
Swiss Databinding
Swiss Databinding erbjuder en renare och mindre ordlig syntax jämfört med föregångaren, JSON -databindningen. Det är särskilt användbart när du behöver definiera bindningar på ett enkelt sätt, ofta direkt i XML -layoutfiler. Schweiziska bindningar är enkla att läsa och skriva, vilket gör dem lämpliga för enkla, direkta bindningar där syntaxen måste vara kortfattad och förståelig.
Ett specifikt scenario där schweizisk databindning kan föredras är när du snabbt behöver ställa in bindningar i XML -filer, särskilt i plattformar där XML -layouter ofta används och lätt kan redigeras, till exempel Android. Swiss Databinding övervakar emellertid inte ändringar från visningsmodellen såvida inte den bindande källan återställs, vilket kan vara en begränsning i scenarier som kräver realtidsuppdateringar.
Fluent Databinding
Fluent Databinding, å andra sidan, tillhandahåller en C#-baserad syntax för konstruktion av bindningar. Detta tillvägagångssätt är särskilt fördelaktigt i miljöer där XML-layouter inte lätt är mänskliga-redigerbara, till exempel iOS och macOS. Flytande bindningar möjliggör mer komplexa och dynamiska bindande inställningar, vilket gör dem idealiska för scenarier där du måste programmatiskt manipulera bindningar eller hantera mer komplicerad logik.
Flytande databindning föredras när du behöver skapa bindningar programmatiskt, vilket kan vara mer flexibelt och kraftfullt, särskilt i komplexa applikationer eller när du arbetar med plattformar som inte stöder XML -layouter lika effektivt.
preferensscenarier
- Swiss Databinding föredras när:
-Du behöver en enkel, lättläst syntax för bindningar, särskilt i XML-filer.
- Applikationen kräver inte kontinuerlig övervakning av ändringar från visningsmodellen.
- Du arbetar i miljöer där XML -layouter lätt kan redigeras.
- Flytande databindning föredras när:
- Du måste skapa bindningar programmatiskt, vilket möjliggör mer dynamiska och komplexa inställningar.
- Du arbetar med plattformar där XML -layouter inte är lätt redigerbara, till exempel iOS.
- Applikationen kräver mer kontroll över den bindande logiken eller behöver för att hantera komplexa scenarier.
Sammanfattningsvis, medan både schweizisk och flytande databindning har sina styrkor, beror valet mellan dem på de specifika kraven i din applikation, inklusive behovet av enkelhet kontra komplexitet och plattformen du utvecklar för.
Citeringar:[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://crosscuttingconcerns.com/mvvmcross-fluent-Databinding
[3] https://stackoverflow.com/questions/41462365/what-are-the-pro-and-cons-of-android-data
[4] https://stackoverflow.com/questions/60500840/should-view-binding-repace-data-binding
[5] https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netdesktop-9.0
[6] https://www.phunware.com/android-coding-approach/
]
[8] https://jesseliberty.com/2022/02/01/advanced-databinding-part-0-basics/