Plugin mvvmcross.plugin.fieldbinding je součástí prodloužení vázání RIO pro MVVMCross, navržená pro zlepšení schopností vázání dat tím, že umožňují použití polí jako zdroje dat vedle vlastností. Zde jsou hlavní rysy tohoto pluginu:
1. vazba dat založená na poli: Tradičně se vázání dat MVVMCross spoléhá na vlastnosti. S pluginem FieldBindingu však můžete ve svém ViewModel používat jako zdroje pro vazbu dat. Tato flexibilita je zvláště užitečná, pokud se chcete vázat přímo na pole bez potřeby vlastností [1] [4].
2. Inotifychanged podpora pro pole: Plugin podporuje použití `inotifydChanged` pro dynamická pole. To znamená, že pole mohou upozornit uživatelské rozhraní o změnách, podobně jako vlastnosti s `inotifyPropertyChanged`. Toho je dosaženo pomocí tříd jako „Inc“ (Notify změněno), které lze použít k vytvoření pozorovatelných polí [1].
3. Kompatibilita a podpora platformy: Plugin FieldBindingu je čistý standardní plugin .NET, díky čemuž je kompatibilní na různých platformách podporovaných MVVMCross, včetně Xamarin IOS, Xamarin Android, formy Xamarin, Windows a Mac [1] [7].
4. Integrace s jinými pluginy: Plugin pro Binding FieldBinding lze použít ve spojení s jinými pluginy MVVMCross, jako je mvvmcross.plugin.all balíček, který zahrnuje všechny pluginy MVVMCross, a MVVMCross.Plugins.Validation.ForfieldBinding, který poskytuje ověřovací vazby [7].
5. Použití v viewModels: V ViewModels můžete definovat pole pomocí tříd jako `inc` a vázat je přímo na prvky UI. Například můžete vytvořit pole jako `public Readonly Inc id = new nc ();` a vázat je na komponenty UI pomocí syntaxe vazby MVVMCross [1].
6. Syntaxe vazby: Plugin podporuje různé vazebné syntaxe, včetně vazby založených na XML pro Android a plynulé vazby pro platformy, jako je iOS. Například můžete v Androidu vázat „textView` pomocí XML jako` Local: MvxBind = 'text FirstName'` [1] [4].
Celkově nabízí plugin mvvmcross.plugin.fieldbinding plugin flexibilnější přístup k vazbě dat tím, že umožňuje použití polí, které mohou zjednodušit určité scénáře a zlepšit čitelnost kódu.
Citace:[1] https://www.mvvmcross.com/documentation/plugins/fieldbinding
[2] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[5] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[6] https://github.com/mvvmcross/mvvmcross/issues/2607
[7] https://www.nuget.org/packages/mvvmcross.plugin.fieldbinding/
[8] https://www.mvvmcross.com/documentation/fundamentals/logging-new