Может ли кто-нибудь помочь мне правильно реализовать ICollectionViewLiveShaping
с целью фильтрации? Я не нашел много полезной документации в Интернете по этой проблеме. Вот что у меня есть:
public ICollectionView WorkersEmployed { get; set; }
WorkersEmployed = new CollectionViewSource { Source = GameContainer.Game.Workers }.View;
Я не использую GetDefaultView
, потому что мне нужно несколько экземпляров фильтров в этой коллекции. Если это имеет значение, GameContainer.Game.Workers
является ObservableCollection
.
ApplyFilter(WorkersEmployed);
private void ApplyFilter(ICollectionView collectionView)
{
collectionView.Filter = IsWorkerEmployed;
}
public bool IsWorkerEmployed(object item)
{
Worker w = item as Worker;
return w.EmployerID == this.ID;
}
Все это работает, но, конечно, оно должно быть обновлено вручную, поэтому я пытаюсь использовать ICollectionViewLiveShaping
. Лучший пример, который я мог найти, был этот, но, к сожалению, я все еще не мог заставить его работать. Учитывая то, что у меня здесь, может ли кто-нибудь дать мне толчок в правильном направлении, чтобы активировать фильтрацию в реальном времени?
Любая помощь будет принята с благодарностью.
Просто из любопытства, это действительно сложная задача? Если это так, кажется, люди, которые разработали ICollectionViewLiveShaping
, сделали довольно плохую работу.
Обновление: Похоже, что единственный способ добавить свойство в коллекцию ICollectionViewLiveShaping
LiveFilteringProperties
- через строку. Учитывая это ограничение, можно ли даже фильтровать свойства в другом классе (EmployerID EmployerID в этом случае)?
Может ли кто-нибудь, у кого есть опыт работы с ICollectionViewLiveShaping
, сказать, что то, что я пытаюсь сделать в этой ситуации, является даже жизнеспособным вариантом? Я честно не знаю, есть ли это или нет из-за полного отсутствия документации и доступных примеров. Даже если это не осуществимо, было бы, по крайней мере, полезно знать, трачу ли я свое время или нет.