MainPage отображает список и кнопку. Источником ListView является Адреса (привязка данных). Когда пользователь нажимает кнопку, открывается AddAddressPage. Оба имеют свою собственную ViewModel. В AddAddressPage пользователь может заполнить формуляр и нажать кнопку, чтобы добавить новый адрес в список. Все работает, кроме обновления. После добавления адреса ничего не происходит, и мне нужно перезапустить приложение, чтобы увидеть новый адрес (я также попробовал ObservableCollection). Я использовал точки разрыва и заметил, что Getter вызывается не дважды, а Setter.
MainPageViewModel:
private List<Address> addresses;
public List<Address> Addresses
{
get
{
return this.addresses;
}
set
{
this.SetValue(ref this.addresses, value);
}
}
SetValue:
public void SetValue<T>(ref T Backingfield, T value, [CallerMemberName] string propertyName = null)
{
if (EqualityComparer<T>.Default.Equals(Backingfield, value))
{
return;
}
else
{
Backingfield = value;
this.OnPropertyChanged(propertyName);
}
}
AddAddressViewModel :
// Code to insert new address into SQLite database here...
MainPageViewModel mpvm = new MainPageViewModel();
mpvm.Addresses = SQLite.Select(); // Select returns the database as List