элемент файла XAML, и вы привязываете непосредственно к ключу ресурса, привязка работает отлично. Единственное, что я могу догадаться, это то, что когда вы делаете это полностью в XAML, он знает, что вы действительно хотите связать со значением CollectionViewSource.View, и связывает его для вас за кулисами (как полезно!: /).

отаю над настольным приложением WPF, используя шаблон MVVM.

Я пытаюсь отфильтровать некоторые элементы изListView на основе текста, набранного вTextBox, Я хочуListView элементы, которые будут отфильтрованы при изменении текста.

Я хочу знать, как запустить фильтр при изменении текста фильтра.

ListView привязывается кCollectionViewSource, который связывает сObservableCollection на моей ViewModel.TextBox для фильтра текста привязывается к строке в ViewModel, сUpdateSourceTrigger=PropertyChanged, так, как это должно быть.

<CollectionViewSource x:Key="ProjectsCollection"
                      Source="{Binding Path=AllProjects}"
                      Filter="CollectionViewSource_Filter" />

<TextBox Text="{Binding Path=FilterText, UpdateSourceTrigger=PropertyChanged}" />

<ListView DataContext="{StaticResource ProjectsCollection}"
          ItemsSource="{Binding}" />

Filter="CollectionViewSource_Filter" ссылки на обработчик событий в коде, который просто вызывает метод фильтра во ViewModel.

Фильтрация выполняется при изменении значения FilterText - установщик свойства FilterText вызывает метод FilterList, который выполняет итерацию поObservableCollection в моей ViewModel и устанавливаетboolean Свойство FilteredOut для каждого элемента ViewModel.

Я знаю, что свойство FilteredOut обновляется при изменении текста фильтра, но список не обновляется.CollectionViewSource Событие фильтра срабатывает только тогда, когда я перезагружаю UserControl, переключаясь с него и обратно.

Я пробовал звонитьOnPropertyChanged("AllProjects") после обновления информации фильтра, но это не решило мою проблему. ("AllProjects" являетсяObservableCollection свойство на моей ViewModel, к которойCollectionViewSource связывает.)

Как я могу получитьCollectionViewSource перефильтровать себя, когда значение FilterTextTextBox изменения?

Большое спасибо

Ответы на вопрос(6)

Ваш ответ на вопрос