realm.ioに基づいて、このデータモデルを仮定します更新のListView>
public class JournalEntry : RealmObject {
...
}
public class JournalOwner : RealmObject {
...
public RealmList<JournalEntry> Entries { get; }
}
私はJournalOwnerのすべてJournalEntry項目のリストビューを示しJournalEntriesPageを、持っています。対応するビューモデルの内部
、Iは、コンストラクタにJournalOwnerを通過しエントリプロパティにJournalOwner.Entriesを割り当てます。
public class JournalEntriesViewModel {
private Realm _realm;
private JournalOwner _owner;
public RealmList<JournalEntry> Entries {
get { return _owner.Entries; }
}
....
public JournalEntriesViewModel(JournalOwner owner) {
_realm = Realm.GetInstance();
_owner = owner;
AddEntryCommand = new Command(AddEntry);
DeleteEntryCommand = new Command<JournalEntry>(DeleteEntry);
}
私はUIを介しJournalEntryを追加した場合、それが作成されますが、ListViewのには表示されません。
私は(JournalOwnerに)ナビゲーションを上に移動して、所有者のエントリまで、リストビューは、新しく作成されたJournalEntryを示しています。
どういうわけか、リストビューJournalEntry秒のは、新しく作成されたJournalEntryについて知りません。
JournalEntriesPageはそうのようなリストビューをバインドします
<ListView
ItemsSource="{Binding Entries}"
x:Name="EntriesListView"
ItemTapped="OnItemTapped"
ItemSelected="OnItemSelected" >
は、どのように私はListViewコントロールがすぐに新しく作成されたエントリを表示疥癬のですか?
私は何とかそのオブザーバーのオブザーバー(?)にその値が変更されたことを知らせる必要があると感じます。対応する状況では
、
Owners = _realm.All<JournalOwner>();
のエントリへの変更はすぐに変更するには、対応するリストビューを強制的に行います。
RealmListは、ListViewに更新を通知するために変更されたINotifyCollectionを実装する必要があります。 – Jason
@Jason別のクラスで_realm.All()の変更がListViewに反映される場合、RealmListはINotifyCollectionを実装していませんか? –
SteAp
Realmにはまだ手を加えていませんが、私は確信が持てません – Jason