У меня есть страница, где я должен асинхронно загружать Список некоторых данных из Сервиса webApi, и когда элементы управления на этой странице загружаются, они должны соответствующим образом получать свои данные из этого Списка.Ниже приведен мой код.
private IEnumerable<Comment> comments;
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
comments = await CommentsService.GetAllCommentsForThisPage("FluentCallerApp", "MainPage");
base.OnNavigatedTo(e);
}
private void FieldLoaded(object sender, RoutedEventArgs e)
{
var noteBox = sender as NoteTextBox;
var myComments = comments.Where(a => a.FieldId == noteBox.FieldId);
//update field control properties.
}
Теперь проблема в том, что комментарии в событии FieldLoaded имеют значение null, обратите внимание, что FieldLoaded привязан к нескольким элементам управления одного типа, и все они должны получать свои данные изэто событие.Мне нужно, чтобы пользовательский интерфейс реагировал, поэтому мне нужно, чтобы все было асинхронно, и по соображениям производительности я делаю вызов webApi только один раз, чтобы получить все данные для всех полей этой страницы.Я также попытался лениво загрузить поле комментариев с помощью асинхронного метода, но проблема в том, что каждый элемент управления пытается получить комментарии снова, потому что первый метод никогда не завершается.