diff --git a/Chapter06/Complete/MyMediaCollection/ViewModels/ItemDetailsViewModel.cs b/Chapter06/Complete/MyMediaCollection/ViewModels/ItemDetailsViewModel.cs index 1054800..2296791 100644 --- a/Chapter06/Complete/MyMediaCollection/ViewModels/ItemDetailsViewModel.cs +++ b/Chapter06/Complete/MyMediaCollection/ViewModels/ItemDetailsViewModel.cs @@ -41,12 +41,31 @@ namespace MyMediaCollection.ViewModels PopulateLists(); } - public void InitializeItemDetailData(int itemId) + public async Task InitializeItemDetailDataAsync(int itemId) { _selectedItemId = itemId; + await PopulateExistingItemAsync(_dataService); IsDirty = false; } + private async Task PopulateExistingItemAsync(IDataService dataService) + { + if (_selectedItemId > 0) + { + var item = await _dataService.GetItemAsync(_selectedItemId); + Mediums.Clear(); + + foreach (string medium in dataService.GetMediums(item.MediaType).Select(m => m.Name)) + Mediums.Add(medium); + + _itemId = item.Id; + ItemName = item.Name; + SelectedLocation = item.Location.ToString(); + SelectedItemType = item.MediaType.ToString(); + SelectedMedium = item.MediumInfo.Name; + } + } + private void PopulateLists() { ItemTypes.Clear(); diff --git a/Chapter06/Complete/MyMediaCollection/Views/ItemDetailsPage.xaml.cs b/Chapter06/Complete/MyMediaCollection/Views/ItemDetailsPage.xaml.cs index 629d419..05b8799 100644 --- a/Chapter06/Complete/MyMediaCollection/Views/ItemDetailsPage.xaml.cs +++ b/Chapter06/Complete/MyMediaCollection/Views/ItemDetailsPage.xaml.cs @@ -34,7 +34,7 @@ namespace MyMediaCollection.Views public ItemDetailsViewModel ViewModel; - protected override void OnNavigatedTo(NavigationEventArgs e) + protected async override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); @@ -42,7 +42,7 @@ namespace MyMediaCollection.Views if (itemId > 0) { - ViewModel.InitializeItemDetailData(itemId); + await ViewModel.InitializeItemDetailDataAsync(itemId); } } }