C# 集合的绑定子集
我有一个C# 集合的绑定子集,c#,wpf,data-binding,C#,Wpf,Data Binding,我有一个可观察的集合对象。Person对象具有Name和Type属性,其中Type是student或teacher。有没有办法将组合框绑定到ObservableCollection对象的子集,其中类型属性仅为教师?这将对您有所帮助 这里提到的概念有CollectionViewSource、过滤器ecc 也看看 您可以按以下程序执行此操作: MyComboBox.ItemsSource = a.Where((obj, r) => { return (obj.Type == "student
可观察的集合
对象。Person
对象具有Name
和Type
属性,其中Type
是student
或teacher
。有没有办法将组合框绑定到ObservableCollection
对象的子集,其中类型
属性仅为教师
?这将对您有所帮助
这里提到的概念有CollectionViewSource、过滤器ecc
也看看
您可以按以下程序执行此操作:
MyComboBox.ItemsSource = a.Where((obj, r) => { return (obj.Type == "student"); }).ToList();
ICollectionView
这里是您的答案-
public ICollectionView Teachers
{
get
{
// Persons is your ObservableCollection<Person>.
var teachers = CollectionViewSource.GetDefaultView(Persons);
teachers.Filter = p => (p as Person).Type == "Teacher";
return teachers;
}
}
公共ICollectionView教师
{
得到
{
//人是你可以观察到的集合。
var teachers=CollectionViewSource.GetDefaultView(个人);
teachers.Filter=p=>(p作为个人)。Type==“Teacher”;
归国教师;
}
}
您可以使用此属性绑定comboBox ItemSource。当从源集合中添加或删除任何项目时,此集合将自动筛选。谢谢,这两个问题中有一些很好的信息和链接。谢谢,这是我能说的最干净、最明显的过滤方式。我来晚了一点,但有点打字错误:
var教师
应该是var source
@MickaelV。-谢谢更新。。!!