У меня есть наблюдаемая коллекция объектов, которая меняет сверхурочную работу.Фильтрация ObservableCollection с результатами CollectionViewSource
ObservableCollection
Object 1
Object 2
...
Что бы я хотел сделать, это отобразить отфильтрованную версию этой информации в поле со списком. Поэтому я создал источник CollectionViewSource, который является ObservableCollection. А кто фильтр я определил:
private const string Unknown = "Unknown";
public DevicePackageInfo()
{
this.operatingSystemVersion = DevicePackageInfo.Unknown;
this.packageVersionInfo = new PackageVersionInfo(DevicePackageInfo.Unknown);
this.PackageVersionList = new ObservableCollection<PackageVersionInfo>() { new PackageVersionInfo(DevicePackageInfo.Unknown) };
this.packageVersionCollectionView = new CollectionViewSource();
this.packageVersionCollectionView.Filter += PackageHistoryFilter;
this.packageVersionCollectionView.Source = this.PackageVersionList;
this.SetSynced();
}
public void PackageHistoryFilter(object sender, FilterEventArgs e)
{
if (e.Item != null)
e.Accepted = ((PackageVersionInfo)e.Item).OnEAC || ((PackageVersionInfo)e.Item).SelectedOnPC;
}
Проблема заключается в том, когда я обновить ObservableCollection мой выпадающий не обновляется.
Единственный объект, который я вижу в своем списке, это «Неизвестный», первый объект, который я добавляю в свой список во время построения класса.
Мое решение может быть не совсем правильным ... Но я озадачен. Есть ли встроенный способ для фильтрованного источника коллекции подписаться с ObservableCollection
и оставаться в курсе последних событий? Как мне это сделать?
Когда я меняю свой ObservableCollection, я хочу обновить коллекцию, связанную с моим списком со списком.
Минимальный код идеален, я действительно не хочу определять новый класс коллекции, который реализует уведомляемые и т. П.
EDIT: Вот моя XAML
<ComboBox Name="cbSelection" bhvr:SelectionChangedBehaviour.Command="{Binding PackageSelectionCommand}" ItemsSource="{Binding PackageInfo.PackageVersionCollectionView.View, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding PackageInfo.PackageVersionInfo, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsSynchronizedWithCurrentItem="True">
Обычно при использовании ObservableCollection CollectionViewSource получает автоматически обновляется. Я просто попробовал, и мой ComboBox получает новые объекты, которые я добавляю к моему ObservableCollection. – ErazerBrecht
Вот что я подумал. В конце концов, я понял. У меня было много вещей, которые бежали от raisepropertychanged и Update Handle и т. Д. Поэтому я удалил все это, и это сработало. – visc