Есть ли способ автоматического обновления фильтра на ICollectionView
без вызова Refresh()
, когда было сделано соответствующее изменение?
У меня есть следующее:
[Notify]
public ICollectionView Workers { get; set; }
Атрибут [Notify] в этом свойстве реализует только INotifyPropertyChanged
, но в этой ситуации он ничего не делает.
Workers = new CollectionViewSource { Source = DataManager.Data.Workers }.View;
Workers.Filter = w =>
{
Worker worker = w as Worker;
if (w == null)
return false;
return worker.Employer == this;
};
В XAML:
<TextBlock x:Name="WorkersTextBlock"
DataContext="{Binding PlayerGuild}"
FontFamily="Pericles"
Text="{Binding Workers.Count,
StringFormat=Workers : {0},
FallbackValue=Workers : 99}" />
Обновление: Похоже, что использование ICollectionView
будет необходимо для меня, поэтому я хотел бы вернуться к этой теме. Я добавляю щедрость к этому вопросу, получателем которого будет любой человек, который может дать некоторое представление о том, как реализовать "hands-off" ICollectionView
, который не нужно обновлять вручную. На данный момент я открыт для любых идей.