SQLiteの代わりにRealmデータベースを使用するように私のアプリケーションを移植しました。しかし、MVVMと組み合わせてIRealmCollection
の問題が発生しています。レルムでアイテム固有のViewModelを使用する最良の方法は何ですか?
のは、次のモデルを想像してみましょう:私のMainViewModel
上の現在のアプローチはこの1つである
public class Item : RealmObject
{
public string Id { get; }
}
を:
public class MainViewModel
{
public IRealmCollection<Item> { get; private set; }
}
私が今直面してる問題はItem
があり、特定のコマンドを持っているということですItemViewModel
IRealmCollection
の機能を維持しながら、これらを使用したいと思います。
ItemViewModel
:
public class ItemViewModel
{
public Item Model { get; private set; }
public ICommand MyCommand { get; private set; }
}
私が考えてきたが、私はそれをより簡単な解決策があるかどう不思議に思っていました、いくつかの方法があります。
- は、そのカスタム
ObservableCollection
を作成しますが、レルムにサブスクライブする - LINQ
.Select()
拡張機能を使用して、リストのViewModelを作成します。 - Saレルムで
ItemViewModel
VEの各追加のプロパティまたはコマンド - に
[Ignored]
属性を追加します(ItemHelper
のような)別のクラスにItemViewModel
の外にロジックを移動して、何MainViewModel
からそれを呼び出しますMVVMに似た方法でこの問題を解決するのがベストでしょうか?