У меня вопрос MVVM.
Я успешно собираю данные, создаю контейнер IoC в моей виртуальной машине и привязываю его к своему представлению.Проблема, с которой я столкнулся, заключается в том, что представление не обновляет свой пользовательский интерфейс, если я не переместился куда-то, а затем вернулся назад.Затем список заполняется.См. Мою логику ниже:
Служба:
public ObservableCollection<ClassData> _MyList;
public ObservableCollection<ClassData> MyList
{
get
{
return _MyList;
}
private set
{
_MyList = value;
RaisePropertyChanged("MyList");
}
}
async Task LoadData()
{
var top = await cloudService.GetData().ConfigureAwait(false);
MyList = top.results;
}
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propName));
}
}
Интерфейс:
public ObservableCollection<ClassData> MyList { get; }
ВМ (у меня также есть INotifyPropertyChanged в ВМ, но мне нужноиспользовать это в этом примере, поскольку его поднятие свойства изменено из службы?):
public ObservableCollection<ClassData> ViewModelList => this.service.MyList;
private readonly IService service;
public MyViewModel (IService service)
{
this.service = service;
}
XAML:
<ListView ItemsSource = {Binding ViewModelList} ... >