No MVVMcross, os termos necessários e o BindRequired não são diretamente aplicáveis, pois estão no núcleo do ASP.NET. No entanto, entender seus papéis no núcleo do ASP.NET pode ajudar a esclarecer como conceitos semelhantes podem ser aplicados no MVVMcross.
Asp.net Core Context
- NecessárioTatribute: Este atributo garante que uma propriedade não seja nula ou vazia após a ligação do modelo. É usado principalmente para fins de validação, garantindo que os campos obrigatórios sejam preenchidos em formulários ou cenários de entrada de dados [1] [3] [6].
- bindReedattribute: Este atributo garante que uma propriedade esteja presente nos dados recebidos durante a ligação do modelo. Diferentemente do necessário, ele verifica a presença da propriedade nos dados de solicitação, não apenas sua anulação [1] [3] [4].
MVVMCROSS Contexto
No MVVMcross, o foco está na ligação de dados entre a exibição e o ViewModel. A estrutura não usa atributos necessários ou vinculados diretamente. Em vez disso, depende de modos de ligação, como Oneway ou Twoway, para gerenciar a sincronização de dados entre o View e o ViewModel [2] [7].
- Modos de ligação no mvvmcross:
- Oneway: os dados fluem do viewModel para a visualização.
- Twoway: os dados fluem nos dois sentidos entre a visualização e o ViewModel. Este é o modo padrão para ligações personalizadas no MVVMcross [7].
Para alcançar uma funcionalidade semelhante à necessária ou vinculada no MVVMCROSS, você normalmente implementava a lógica de validação dentro do seu ViewModel ou usava ligações personalizadas para garantir que determinadas propriedades sejam atualizadas corretamente. Por exemplo, você pode usar o InotifyPropertyChanged para notificar a visão das alterações no ViewModel, garantindo que os dados estejam sempre atualizados [2] [8].
Implementando a validação em mvvmcross
Embora o MVVMCROSS não suporte diretamente ou o BindEncired, você pode implementar a validação verificando valores nulos ou vazios nas propriedades do seu ViewModel. Isso pode ser feito manualmente ou usando estruturas de validação que se integram ao MVVMCROSS.
Resumo
Em resumo, embora necessário e BindRewired, são específicos para o CORE ASP.NET para garantir a presença e validação dos dados, o MVVMCROSS depende de seus mecanismos de ligação e lógica de validação personalizada para gerenciar a integridade dos dados. Se você precisar garantir que determinados dados estejam presentes ou válidos no MVVMCROSS, normalmente implementaria essa lógica em seu viewmodel ou através de ligações personalizadas.
Citações:[1] https://blog.dominikasikorska.pl/required-vs-bindrequired/
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://dotnettalorials.net/lesson/bindnever-and-bindrequised-attribute-in-asp-net-core-mvc/
[4] https://www.strathweb.com/2017/12/required-and-bindrequised-in-asp-net-core-mvc/
[5] https://www.mvvmcross.com/documentation/plugins/methodbinding
[6] https://towardsdev.com/mastering-the-use-of-requiredattribute-a-detailed-comparison-of-required-vs-bindrequised-b3feaf108ef5
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default-binding-mode-used-in-a-project
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-binding