Каков наиболее эффективный метод обнаружения изменения содержимого объекта и его обновления? C# - PullRequest
0 голосов
/ 25 апреля 2020

Проблема

Часто классы контроллеров (MV C, MV VM , MV P ) которые манипулируют представлениями, имеют доступ ко множеству сервисов. Цель одного из этих сервисов состоит в том, чтобы обновить классы контроллера данными, относящимися к контроллеру.

Возьмем этот класс, например:

public sealed class RestaurantInformation
{
    public IEnumerable<Networking.Models.ServerModels.Restaurant> NearestRestaurants { get; internal set; }
    public IEnumerable<Networking.Models.ServerModels.Restaurant> NewestRestaurants { get; internal set; }
    public IEnumerable<Networking.Models.ServerModels.Category> Categories { get; internal set; }
}

Всякий раз, когда сервис получает обновленную информацию от сеть, относящаяся к категориям, NewestRestaurants или NearestRestaurants, она упаковывает все данные в объект, который имеет тип класса RestaurantInformation, и отправляет его в класс контроллера для передачи в представление.

Я решил поместить свой C Оцените в моем искусстве GCSE, чтобы хорошо использовать и строить диаграммы, чтобы помочь вашему пониманию моей проблемы. (Приношу извинения за то, что вы собираетесь увидеть.)

enter image description here

Как вы теперь видите, процесс выглядит следующим образом:

  1. Загружается представление, которое, в свою очередь, вызывает RestaurantViewControl.
  2. Затем RestaurantViewControl вызывает RestaurantService для извлечения новых категорий из API.
  3. API возвращает новые категории в RestaurantService. (Вы можете видеть здесь, что у ресторанного сервиса теперь есть список, который содержит B).
  4. Затем RestaurantService уведомляет RestaurantViewControl, используя класс выше, с новым списком категорий!
  5. Теперь мы должны обновить список категорий в RestaurantViewControl наиболее эффективным способом с новыми элементами.

В настоящее время я очищаю список категорий, а затем заменяю все значения новым списком. Я хочу знать две вещи:

  1. Какой самый эффективный способ обнаружения изменений в объекте списка категорий?
  2. Какой самый эффективный способ обновления категорий список, который все еще может содержать объекты, которые полностью допустимы в этом списке.

1 Ответ

0 голосов
/ 26 апреля 2020

Похоже, у вас прямая проблема. У вас будет слой служб, который вызывается, когда вы показываете страницу со списком ресторанов.

Таким образом, ваш collectionView / listView просто отображает список элементов в ячейке представления на основе этих данных. Один пример https://almirvuk.blogspot.com/2019/07/lets-play-with-collectionview-layouts.html?m=1

Обычно вы просто делаете проверку на изменения при первом посещении страницы, нажимаете refre sh или если вы настраиваете кэширование. по истечении установленного времени, когда кэш истекает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...