J'ai mon modèle A avec quelques propriétés, je reçois des données du service web REST J'utilise SQlite pour la mise en cache locale. Avec SQLite api je peux utiliser mi class A pour créer automatiquement des tables et après récupérer des données. Thats OkComment implémenter MVVM dans Xamarin.Forms avec SQLite pour remplir une Listview qui nécessite INotifyPropertyChanged/Icommand dans chaque ligne
Maintenant, j'ai besoin d'obtenir ces données sous forme de liste pour peupler une liste, comme un Todo-Item avec une vérification (fait - pas fait) pour mettre à jour un booléen chaque fois que l'utilisateur clique sur i besoin INotifyPropertyChanged par ligne
Mon choix je pense sont:
1) Récupérer la liste complète avec SQLite api je vais obtenir une liste. Mais je n'ai pas les modifications INotifyPropertyChanged ici. Donc, je devrais convertir toute la liste à la liste qui aura INotifyPropertyChanged et ICommand mis en œuvre. Cela va ajouter un processus supplémentaire. 2) Hérite ViewModel directement à partir de Model afin que je puisse récupérer la liste directement à partir de SQLite.net, mais je devrais faire une autre méthode dans le client sqlite pour cette façon spécifique de récupérer. et je vais utiliser pour accéder à SQLite de modèle et ViewModel aussi, je pense que cela ne devrait pas être le faire de cette façon
3) Ajouter INotifyPropertyChanged et ICommand au modèle ...
i essayer d'aborder ces 3 chemin mais je n'aime vraiment pas le code résultant. est-il une autre façon de le faire ou une suggestion pour améliorer les options actuelles pls?
donc pour la récupération des éléments la bonne approche sera à partir du ViewModel de la page, appelez client SQLite où je recevrai une liste et juste après convertir en List . Je le vois avec une classe ListItemViewModel où je peux mettre en œuvre la liste INotifyPropertyChanged aussi parse également chaque ItemModel à ItemViewModel ... et l'étape suivante peuplent ListView à droite? Êtes-vous d'accord avec cela? –
@RicardoAlvarezCastillo, Je suis totalement d'accord avec la partie où vous convertissez une 'List' en' List '. Typiquement ceci est fait avec la classe 'Factory' ayant la méthode' ItemViewModel Convert (ItemModel) '. –
foxanna
@ RicardoAlvarezCastillo, peut-être qu'il me manque quelque chose? Pourquoi voulez-vous que 'List' implémente' INotifyPropertyChanged'? Ce devrait être 'ItemViewModel' qui l'implémente. – foxanna