Пусть эта модель данных на основе realm.io:Обновление ListView по измененному RealmList <>
public class JournalEntry : RealmObject {
...
}
public class JournalOwner : RealmObject {
...
public RealmList<JournalEntry> Entries { get; }
}
У меня есть JournalEntriesPage, которые показывают в ListView всех JournalEntry пунктов в JournalOwner.
Внутри соответствующей модели представления, я прохожу 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);
}
Если добавить JournalEntry через пользовательский интерфейс, он будет создаваться, но не появляется в ListView.
Если я двигаюсь вверх по навигации (к JournalOwner), а затем вплоть до записей владельца, ListView показывает недавно созданный JournalEntry.
Каким-то ListView из JournalEntry с не знает о вновь созданном JournalEntry.
JournalEntriesPage связывает ListView следующим образом:
<ListView
ItemsSource="{Binding Entries}"
x:Name="EntriesListView"
ItemTapped="OnItemTapped"
ItemSelected="OnItemSelected" >
Как я заведовать ListView показать вновь созданные записи сразу?
Я чувствую, что мне как-то нужно сообщить наблюдателям (?) О том, что его значение изменилось.
В соответствующей ситуации, изменения в записях
Owners = _realm.All<JournalOwner>();
ли заставить соответствующий ListView немедленно изменить.
RealmList должен реализовать INotifyCollection, измененный для того, чтобы ListView был уведомлен об обновлениях. – Jason
@Jason Если в другом классе изменения в _realm.All() действительно отражены в ListView, не реализует ли RealmList INotifyCollection? –
SteAp
Я еще не справился с Realm, поэтому не могу сказать точно – Jason