Как загрузить данные асинхронно, когда класс создается в MVVMLight, когда модель представления кэшируется? - PullRequest
0 голосов
/ 31 декабря 2018

В каком месте я могу асинхронно загружать данные в модель представления только тогда, когда она построена?асинхронные методы не могут быть вызваны в конструкторе, в настоящее время я загружаю данные в событие OnAppearing (используя EventToCommand):

private async void OnLoadData()
{
    DataLoaded = await LoadCategories("0") && await LoadCities() && await OnLoadAgreement();
   //....
}

, но всякий раз, когда я открываю всплывающее окно, вызывается событие AppearingЭто не то, что я хочу или имею в виду.Я использую MVVMLight и регистрирую модель представления в классе ViewModelLocator:

public AddItemViewModel AddItem
        {
            get
            {
                return SimpleIoc.Default.GetInstance<AddItemViewModel>(AddItemPage);
            }
        }

public ViewModelLocator()
{
    ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
    SimpleIoc.Default.Register<AddItemViewModel>();
}

Та же проблема применяется к команде CleanData, мне нужно, чтобы она вызывалась при исчезновении страницы (из точки конечного пользователявид) но он вызывается при закрытии всплывающего окна

...