O plug -in MVVMcross.Plugin.FieldBinding faz parte das extensões de ligação do Rio para MVVMcross, projetadas para aprimorar os recursos de ligação de dados, permitindo que os campos sejam usados como fontes de dados juntamente com as propriedades. Aqui estão os principais recursos deste plugin:
1. Vinculação de dados baseada em campo: Tradicionalmente, a ligação de dados MVVMCROSS depende de propriedades. No entanto, com o plug -in de ligação de campo, você pode usar os campos públicos em seu viewmodel como fontes de ligação de dados. Essa flexibilidade é particularmente útil quando você deseja se ligar diretamente aos campos sem a necessidade de propriedades [1] [4].
2. Suporte inotifyChanged para campos: o plug -in suporta o uso de `inotifyChanged` para campos dinâmicos. Isso significa que os campos podem notificar a interface do usuário sobre as alterações, semelhante à forma como as propriedades se saem com o `inotifyPropertyChanged`. Isso é conseguido através do uso de classes como `Inc` (notificação alterada), que pode ser usada para criar campos observáveis [1].
3. Compatibilidade e suporte da plataforma: O plug -in de ligação de campo é um plug -in padrão .NET puro, tornando -o compatível em várias plataformas suportadas pelo MVVMCROSS, incluindo Xamarin iOS, Xamarin Android, formulários de xamarina, janelas e Mac [1] [7].
4. Integração com outros plug -ins: o plug -in de ligação de campo pode ser usado em conjunto com outros plugins MVVMCross, como o pacote mvvmcross.plugin.all, que inclui todos os plugins MVVMCross e mvvmcross.plugins.validation.forfieldbinding, que fornece suporte a vidres para o campo [7].
5. Uso em ViewModels: No ViewModels, você pode definir campos usando classes como `inc` e ligá -los diretamente aos elementos da interface do usuário. Por exemplo, você pode criar campos como `public rehonly inc id = new nc ();` e ligá -los aos componentes da interface do usuário usando a sintaxe de ligação ao MVVMCROSS [1].
6. Sintaxe de ligação: O plug-in suporta várias sintaxes de ligação, incluindo ligações baseadas em XML para ligações Android e fluentes para plataformas como iOS. Por exemplo, você pode vincular um `textView` no Android usando XML como` local: mvxbind = 'text FirstName' '[1] [4].
No geral, o plug -in MVVMcross.plugin.FieldBinding oferece uma abordagem mais flexível para a ligação de dados, permitindo o uso de campos, o que pode simplificar certos cenários e melhorar a legibilidade do código.
Citações:[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