Использование одного и того же ListView на двух сводных элементах без дублирования кода

Я работаю над покупкой приложения для Windows Phone 8.1, где у меня есть страница "Акции". Эта страница является сводной страницей с двумя сводными элементами. Первый элемент показывает 100 лучших рекламных акций, а второй элемент показывает все рекламные акции. Для получения данных я звоню в веб-сервис. Данные имеют одинаковую структуру в обоих случаях, поэтому я использую один и тот же ListView и DataTemplate на обеих страницах. Мой вопрос: как я могу избежать дублирования кода в этом сценарии? Как я могу использовать один и тот же ListView и DataTemplate на двух сводных элементах без вставки копий XAML и кода?

1 ответ

Решение

Вам необходимо создать другое свойство в вашей модели представления, которое принимает фильтр первого типа, например так:

    public ObservableCollection<ItemModel> ItemList { get; set; }
    public IEnumerable<ItemModel> Top100List { get { return (from i in ItemList select i).Take(100); } }

Затем свяжите каждый ListView с соответствующим свойством. В этом примере предполагается, что первые 100 элементов являются первыми 100 элементами в списке. Если это не так, вам придется либо изменить оператор linq, либо отсортировать список при добавлении элементов.

Другие вопросы по тегам