Как отфильтровать коллекцию Observable Collection Class Collection - PullRequest
9 голосов
/ 20 февраля 2010

Я реализовал Linq-To-Sql .. Добавьте в нее необходимую таблицу ... после этого класс linq автоматически установит свойство для поля .. Я реализовал один класс, используя ObservableCollection class .. и передал объект datacontextclass в его конструктор ...

так после получения всех данных как его отфильтровать?

  public class BindBookIssueDetails : ObservableCollection
        {
            public BindBookIssueDetails(DataClasses1DataContext dataDC)
            {
                foreach (Resource_Allocation_View res in dataDC.Resource_Allocation_Views)
                {
                    this.Add(res);
                }
            }
        }

private BindBookIssueDetails bResource;
bResource = new BindBookIssueDetails(db);
_cmbResource.ItemSource=bResource;

Пожалуйста, помогите мне.

Ответы [ 2 ]

13 голосов
/ 20 февраля 2010

Вы можете использовать CollectionViewSource и отфильтровать его. Так что это влияет только на сторону просмотра (.XAML)

    ICollectionView collectionView = CollectionViewSource.GetDefaultView(bResource);
    collectionView.Filter = new Predicate<object>(YourFilterFunction);

Проверьте этот блог для более подробной информации. http://bea.stollnitz.com/blog/?p=31

0 голосов
/ 23 мая 2013

Я пытался использовать решение @ Jobi, но по какой-то причине я получил исключение при попытке запустить FilterFunction.

Так что я использовал немного другой подход. Я разыгрываю CollectionViewSource х DefaultView до BindingListCollectionView

myVS=(BindingListCollectionView)CollectionViewSource.GetDefaultView(sourceofdata);

и теперь я могу создать строку фильтра в стиле SQL и применить ее так:

myVS.CustomFilter=myfilterstring;

Я все еще буду пытаться решить мою проблему (я предполагаю, что решение @ Jobi более гибкое).

...