Если вы хотите, чтобы ListView
автоматически обновлялось по мере добавления, удаления и изменения элементов в базовом списке, вам нужно будет использовать ObservableCollection
. ObservableCollection
определено в System.Collections.ObjectModel
и аналогично списку, за исключением того, что оно может уведомлять ListView
о любых изменениях:
public ObservableCollection<ServiceProvider> itemsInList { get; set; }
Затем убедитесь, что вы установили правильное значение bindingContext
и инициализировалиObservableCollection
:
public MainPage()
{
InitializeComponent();
itemsInList = new ObservableCollection<ServiceProvider>();
BindingContext = this;
}
Я пишу образец для тестирования, и он работает на моей стороне, вы можете посмотреть полный код:
public partial class MainPage : ContentPage
{
public ObservableCollection<ServiceProvider> itemsInList { get; set; }
public MainPage()
{
InitializeComponent();
itemsInList = new ObservableCollection<ServiceProvider>();
BindingContext = this;
}
protected override void OnAppearing()
{
base.OnAppearing();
itemsInList.Add(new ServiceProvider() { Name= "a"});
}
}
public class ServiceProvider : INotifyPropertyChanged
{
string name;
public event PropertyChangedEventHandler PropertyChanged;
public ServiceProvider()
{
}
public String Name
{
set
{
if (name != value)
{
name = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Name"));
}
}
}
get
{
return name;
}
}
}
Не стесняйтесь спрашивать менялюбой вопрос, если вы все еще не можете решить его.