Commit edits before refresh

This commit is contained in:
Michael Bucari-Tovo 2023-01-09 18:21:59 -07:00
parent 708cdcc24c
commit 2e49c7f697
12 changed files with 34 additions and 10 deletions

View file

@ -77,7 +77,7 @@ namespace LibationAvalonia.ViewModels
//Run query on new list
FilteredInGridEntries = QueryResults(SOURCE, FilterString);
await Dispatcher.UIThread.InvokeAsync(GridEntries.Refresh);
await refreshGrid();
}
catch (Exception ex)
@ -86,6 +86,14 @@ namespace LibationAvalonia.ViewModels
}
}
private async Task refreshGrid()
{
if (GridEntries.IsEditingItem)
await Dispatcher.UIThread.InvokeAsync(GridEntries.CommitEdit);
await Dispatcher.UIThread.InvokeAsync(GridEntries.Refresh);
}
private static List<GridEntry> CreateGridEntries(IEnumerable<LibraryBook> dbBooks)
{
var geList = dbBooks
@ -118,10 +126,11 @@ namespace LibationAvalonia.ViewModels
return bookList;
}
public void ToggleSeriesExpanded(SeriesEntry seriesEntry)
public async Task ToggleSeriesExpanded(SeriesEntry seriesEntry)
{
seriesEntry.Liberate.Expanded = !seriesEntry.Liberate.Expanded;
GridEntries.Refresh();
await refreshGrid();
}
#endregion
@ -140,7 +149,7 @@ namespace LibationAvalonia.ViewModels
FilteredInGridEntries = QueryResults(SOURCE, searchString);
await Dispatcher.UIThread.InvokeAsync(GridEntries.Refresh);
await refreshGrid();
}
private bool CollectionFilter(object item)
@ -176,11 +185,7 @@ namespace LibationAvalonia.ViewModels
if (filterResults is not null && FilteredInGridEntries.Intersect(filterResults).Count() != FilteredInGridEntries.Count)
{
FilteredInGridEntries = filterResults;
if (GridEntries.IsEditingItem)
await Dispatcher.UIThread.InvokeAsync(GridEntries.CommitEdit);
await Dispatcher.UIThread.InvokeAsync(GridEntries.Refresh);
await refreshGrid();
}
}