J'ai porté mon application pour utiliser la base de données Realm au lieu de SQLite. Cependant, je rencontre un problème avec le IRealmCollection
en combinaison avec MVVM.Quelle est la meilleure façon d'utiliser ViewModel avec Realm?
Imaginons le modèle suivant:
public class Item : RealmObject
{
public string Id { get; }
}
L'approche actuelle sur mon MainViewModel
est celui-ci:
public class MainViewModel
{
public IRealmCollection<Item> { get; private set; }
}
Le problème que je suis maintenant face est que le Item
a des commandes spécifiques, situées dans un ItemViewModel
. Je veux utiliser ceux-ci tout en gardant les caractéristiques du IRealmCollection
.
Le ItemViewModel
:
public class ItemViewModel
{
public Item Model { get; private set; }
public ICommand MyCommand { get; private set; }
}
Il existe plusieurs méthodes que j'ai pensé à, mais je me suis demandé s'il y a une solution plus simple à cette:
- Créer une coutume
ObservableCollection
que s'abonne au domaine - Utilisez l'extension LINQ
.Select()
pour créer un ViewModel en dehors de la liste - Sa ve le
ItemViewModel
dans le royaume et ajoutez l'attribut[Ignored]
à chaque propriété supplémentaire ou commande - Déplacer la logique de la
ItemViewModel
à une classe distincte (comme unItemHelper
) et appeler de laMainViewModel
Quelle est la meilleur et probablement le plus MVVM-façon de résoudre ce problème?