У меня есть проект Xamarin. Я хочу заполнить представление списка списком объектов, и представление списка должно обновляться само после любого добавления, обновления или удаления списка. Мне удалось сделать это с помощью добавления и обновления, но когда я пытаюсь удалить Listview не обновляется. Я использую базовую модель INotifyPropertyChanged для наследования от:
public class BaseModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected bool SetProperty<T>(ref T storage, T value,
[CallerMemberName] String propertyName = null)
{
if (object.Equals(storage, value)) return false;
storage = value;
this.OnPropertyChanged(propertyName);
return true;
}
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var eventHandler = this.PropertyChanged;
if (eventHandler != null)
{
eventHandler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Модель ipsettings:
public class IpSettingModel : BaseModel
{
public IpSettingModel(String ip)
{
this._ip = ip;
}
private string _ip = string.Empty;
public string ip
{
get { return this._ip; }
set { this.SetProperty(ref this._ip, value); }
}
}
Заполните список с помощью адаптера:
ObservableCollection<IpSettingModel> iplist = new ObservableCollection<IpSettingModel>();
IpAdapter myadapter = new IpAdapter(this, iplist);
ipListview.Adapter = myadapter;
Пока все хорошо. Если я добавлю или обновлю объект из списка, он будет работать нормально.
Когда я пытаюсь удалить объект
IpManageClass.datasource.Remove(IpManageClass.datasource.Where(o => o.ip == selecteditem.ip).Single());
объект удаляется из коллекции ObservableCollection, но представление списка не обновляется. Что мне не хватает?