Плагин Mvvmcross.plugin.fieldbinding является частью расширений привязки RIO для MVVMcross, предназначенного для расширения возможностей привязки данных, позволяя использовать поля в качестве источников данных наряду со свойствами. Вот основные функции этого плагина:
1. Полевое связывание данных: традиционно, связывание данных MVVMcross зависит от свойств. Однако с помощью плагина по всему, вы можете использовать общественные поля в вашем просмотре в качестве источников для привязки данных. Эта гибкость особенно полезна, если вы хотите связать непосредственно с полями без необходимости в свойствах [1] [4].
2. Инотифугированная поддержка полей: плагин поддерживает использование `inotifychanged` для динамических полей. Это означает, что поля могут уведомить пользовательский интерфейс об изменениях, аналогично тому, как свойства делают с `inotifypropertychanged`. Это достигается за счет использования классов, таких как `inc` (уведомление об изменении), которые можно использовать для создания наблюдаемых полей [1].
3. Совместимость и поддержка платформы. Плагин для связывания Field - это чистый стандартный плагин .NET, который делает его совместимым на различных платформах, поддерживаемых MVVMcross, включая Xamarin IOS, Xamarin Android, Xamarin Forms, Windows и Mac [1] [7].
4. Интеграция с другими плагинами: плагин Fieldbinding может использоваться в сочетании с другими плагинами MVVMcross, такими как пакет MVVMcross.Plugin.all, который включает в себя все плагины MVVMcross, и MVVMcross.plugins.validation.ffieldbinding, который обеспечивает подтверждение для полевых связей [7].
5. Использование в ViewModels: в ViewModels вы можете определить поля, используя такие классы, как «Inc` и связывать их непосредственно с элементами пользовательского интерфейса». Например, вы можете создавать поля, такие как `public Readonly Inc id = new NC ();` и связывать их с компонентами пользовательского интерфейса с использованием синтаксиса связывания MVVMcross [1].
6. Синтаксис связывания: плагин поддерживает различные синтаксисы связывания, включая привязки на основе XML для Android и Fluent Bindings для платформ, таких как iOS. Например, вы можете привязать `TextView` в Android, используя XML, например,` Local: mvxbind = 'TextName' ’[1] [4].
В целом, плагин mvvmcross.plugin.fieldbinding предлагает более гибкий подход к привязке данных, позволяя использовать полей, что может упростить определенные сценарии и улучшить читаемость кода.
Цитаты:[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