过滤对于ICollectionView中的重复条目

时间:2013-05-21 06:38:17

标签: c# .net wpf

我有一个班级

Class ABC()
{
    public string Name{get;set;}
    public string Category{get;set;}
}

此类形成的列表具有以下值: -

 Name = "A", Category = "Alphabet"
 Name = "1", Category = "Numeric"
 Name = "2", Category = "Numeric"
 Name = "B", Category = "Alphabet"
 Name = "A", Category = "Alphabet"

我已将上面列表中的过滤器(使用ICollectionView)仅基于类别应用为“Alphabets”,结果列表为: -

 Name = "A", Category = "Alphabet"
 Name = "B", Category = "Alphabet"
 Name = "A", Category = "Alphabet"

工作正常,但我无法从列表中过滤掉这个重复的条目。 我正在使用WPF MVVM。 请帮忙。

1 个答案:

答案 0 :(得分:5)

在过滤器回调中,仅当当前对象具有所需类别时返回true并且是第一个具有其名称的AND。

这样的事情:

    ...
    ObservableCollection<ABC> Items { get;set}
    ListCollectionView ItemsView { get;set }
    ...
    // View filter logic
    ItemsView.Filter = o =>
            {
                var abc = o as ABC;
                if (abc == null) return false;
                return abc.Category == "Alphabet" &&
                       abc == Items.First(i => i.Name == abc.Name);
            };