ReactiveUI DynamicData: WhenAnyValue, Mult. Фильтры, автообновление, разбиение коллекции на страницыC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ReactiveUI DynamicData: WhenAnyValue, Mult. Фильтры, автообновление, разбиение коллекции на страницы

Сообщение Anonymous »

Я не могу найти ответ о том, как обрабатывать живую коллекцию с несколькими фильтрами.
Необходимо использовать WhenAnyValue(несколько фильтров) и AutoRefresh(x=>x .colproperty), привязать фильтр и т. д., преобразовать и выполнить завершающие действия.. (в этом примере разбиение на страницы вручную вместо виртуализации)

Код: Выделить всё

this.WhenAnyValue(x => x.Creations, x => x.PerPage, x => x.CurrentPage, x => x.IncludePublished, x => x.Search, x => x.ShowForReview)

.Select(x => x.Item1.ToObservableChangeSet().AutoRefresh(x => x.Listing).ToCollection().Select(x => x
.Where(x => wherefilters)
.Reverse()
.Skip(PerPage * (CurrentPage - 1))
.Take(PerPage)

.Select(x => new CreationViewModel(x)))
.Do(x =>
{
if (x.Count() == 1)
SelectedCreation = x.First();
})
.Do(x =>
FilteredCreations = x.ToObservableCollection()
).Subscribe()).Subscribe();
(упоминание: я обычно использую ToObservableChangeSet()...filter..transform..Bind(out readonlycollection)
Должен ли я как-то сломать это? Я нашел ToObservableChangeSet() .Filter(this.WhenAnyValue....) где-то был, но кажется, что он не поддерживается (больше).
Я не могу найти пример того, как обрабатывать такие случаи.
Это вызывает новый способ CreationViewModel слишком много раз, так как я предполагаю, что это срабатывание умножается на ifanyvalues ​​и autorefresh.
Пытался найти ресурсы для таких случаев, пытался разобраться.
РЕДАКТИРОВАТЬ
Хорошо, я разделил наблюдаемые, добавил AutoRefreshOnObservable, который пропустил раньше.
У меня есть две основные проблемы:
(1)
https://github.com/LTa2022/RUIDDMyExamp ... ensions.cs
Как правильно рассчитать максимальную страницу, мой подход с использованием toCollection работает, но подписка слишком много раз (пробовал take(1) немедленно отказаться от подписки, но это вообще не работает)
Я думаю, что это имеет смысл из этого .PageEx() расширение, обновляющее MaxPage объекта класса Paging.
(2)
https://github.com/LTa2022/RUIDDMyExamp ... ewModel.cs
Я реализовал фабрику viewmodelfactory, которая обеспечивает правильный результат, используя кеш моделей представлений, но я думаю, что моя наблюдаемая цепочка неверна и слишком много раз доходит до части преобразования. (строка 86) (или, может быть, так оно и работает)

Подробнее здесь: https://stackoverflow.com/questions/780 ... ng-a-colle
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Подписка ReactiveUI WhenAnyValue не срабатывает при изменении свойства на новое значение в Blazor
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Привязка коллекции к WPF ListBox с помощью ReactiveUI
    Anonymous » » в форуме C#
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Привязка коллекции к WPF ListBox с помощью ReactiveUI
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Привязка коллекции к WPF ListBox с помощью ReactiveUI
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Почему подписчик WhenAnyValue не запускается при изменениях имущества после повторной подписки?
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»