Fix loading existing item on item details

This commit is contained in:
Alvin Ashcraft
2023-11-28 14:35:01 -05:00
parent 771c965ecf
commit 2b4f718403
2 changed files with 22 additions and 3 deletions
@@ -41,12 +41,31 @@ namespace MyMediaCollection.ViewModels
PopulateLists(); PopulateLists();
} }
public void InitializeItemDetailData(int itemId) public async Task InitializeItemDetailDataAsync(int itemId)
{ {
_selectedItemId = itemId; _selectedItemId = itemId;
await PopulateExistingItemAsync(_dataService);
IsDirty = false; 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() private void PopulateLists()
{ {
ItemTypes.Clear(); ItemTypes.Clear();
@@ -34,7 +34,7 @@ namespace MyMediaCollection.Views
public ItemDetailsViewModel ViewModel; public ItemDetailsViewModel ViewModel;
protected override void OnNavigatedTo(NavigationEventArgs e) protected async override void OnNavigatedTo(NavigationEventArgs e)
{ {
base.OnNavigatedTo(e); base.OnNavigatedTo(e);
@@ -42,7 +42,7 @@ namespace MyMediaCollection.Views
if (itemId > 0) if (itemId > 0)
{ {
ViewModel.InitializeItemDetailData(itemId); await ViewModel.InitializeItemDetailDataAsync(itemId);
} }
} }
} }