Лучший способ - использовать два разных свойства в вашей модели представления. Затем вы можете связать два разных представления на вкладках со связанным свойством.
По вашему мнению модель:
public ObservableCollection<MyDeliveryModel> FinishedDeliveries;
public ObservableCollection<MyDeliveryModel> DeliveriesInProgress;
Знайте, что вы можете добавить два метода для загрузки данных для этих свойств:
public async Task RefreshFinishedAsync()
{
// Your logic to load the data from the service
}
public async Task RefreshInProgressAsync()
{
// Your logic to load the data from the service
}
А потом в вашем TabbedPage-Event:
if (CurrentPage == DeliveriesInProgress)
{
await tabbedPageViewModel.RefreshInProgressAsync();
}
else if (CurrentPage == FinishedDeliveries)
{
await tabbedPageViewModel.RefreshFinishedAsync();
}
С помощью этого решения вы можете разделять данные, и вам не нужно перезагружать все данные каждый раз, когда вы меняете вкладки. Вы можете проверить, есть ли уже какие-либо данные в коллекции, и если это так ... просто не перезагружайте данные. Просто сделайте это, если пользователь этого хочет.
Это улучшает производительность и «время ожидания» для пользователя.
Или как альтернатива:
Загрузите все данные одновременно и просто отфильтруйте данные для двух свойств коллекции. Это уменьшает сервис-звонки.