我有一个班级
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。 请帮忙。
答案 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);
};