Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quali sono le differenze tra l'uso richiesto e vincolato in mvvmcross


Quali sono le differenze tra l'uso richiesto e vincolato in mvvmcross


In MVVMCROSS, i termini richiesti e bindreat non sono direttamente applicabili in quanto sono nel core ASP.NET. Tuttavia, comprendere i loro ruoli in ASP.NET Core può aiutare a chiarire come i concetti simili potrebbero essere applicati in MVVMCRoss.

asp.net core contesto

- ChieseTTribute: questo attributo garantisce che una proprietà non sia nulla o vuota dopo il legame del modello. Viene utilizzato principalmente a fini di convalida, garantendo che i campi obbligatori siano compilati in forme o scenari di immissione dei dati [1] [3] [6].

- BindRequiredAttribute: questo attributo garantisce che una proprietà sia presente nei dati in arrivo durante il legame del modello. A differenza di richiesto, controlla la presenza della proprietà nei dati di richiesta, non solo la sua annullabilità [1] [3] [4].

contesto mvvmcross

In MVVMCRoss, l'attenzione è rivolta al legame dei dati tra vista e ViewModel. Il framework non utilizza gli attributi richiesti o vincolati direttamente. Invece, si basa su modalità di associazione come Oneway o Twoway per gestire la sincronizzazione dei dati tra vista e ViewModel [2] [7].

- Modalità di legame in mvvmcross:
- Oneway: i dati fluiscono dal ViewModel alla vista.
- Thoway: i dati fluiscono in entrambi i modi tra la vista e la vista. Questa è la modalità predefinita per i binding personalizzati in mvvmcross [7].

Per ottenere funzionalità simili a richieste o vincolate in mvvmcross, in genere impletterebbe la logica di convalida all'interno del viewmodel o utilizzare assistenti personalizzate per garantire che determinate proprietà vengano aggiornate correttamente. Ad esempio, è possibile utilizzare iNotifyPropertyChanged per avvisare la vista delle modifiche nel ViewModel, garantendo che i dati siano sempre aggiornati [2] [8].

Implementazione della convalida in mvvmcross

Sebbene MVVMCROSS non supporti direttamente richiesto o vincolato, è possibile implementare la convalida controllando i valori null o vuoti all'interno delle proprietà di ViewModel. Questo può essere fatto manualmente o utilizzando framework di convalida che si integrano con MVVMCRoss.

Riepilogo

In sintesi, sebbene richiesti e vincolati sono specifici per il core ASP.NET per garantire la presenza e la convalida dei dati, MVVMCRoss si basa sui suoi meccanismi di associazione e la logica di convalida personalizzata per gestire l'integrità dei dati. Se è necessario assicurarsi che determinati dati siano presenti o validi in MVVMCRoss, in genere implementeresti questa logica all'interno del tuo ViewModel o tramite legami personalizzati.

Citazioni:
[1] https://blog.dominikasikorska.pl/required-vs-bindrequired/
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://dotnetutorials.net/lesson/bindnever-and-bindrequired-attribute-in-asp-net-core-mvc/
[4] https://www.strathweb.com/2017/12/required-and-bindrequired-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-bindreQuer-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