我有一个ObservableCollection<Person>
对象。 Person
对象具有Name
和Type
属性,其中Type
是student
或teacher
。有没有办法将ComboBox
绑定到ObservableCollection<Person>
对象的子集,其中Type
属性只有teacher
?集合的绑定子集
集合的绑定子集
回答
你可以通过编程的方式做到这一点OWS:
MyComboBox.ItemsSource = a.Where((obj, r) => { return (obj.Type == "student"); }).ToList();
这将帮助你
WPF Binding to a Combo using only a subset of a Collection's items
这里被提及的概念,如CollectionViewSource,过滤ECC ...
看一看也在
谢谢,这些问题中有一些很好的信息和链接。 – dotancohen 2012-03-08 19:22:51
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;
}
}
你可以用这个属性绑定您的组合框的ItemSource。当您的源集合中添加或删除任何项目时,将自动过滤此集合。
非常感谢! – dotancohen 2012-03-08 19:23:40
我对派对有点迟到,但有点小错:'var teachers'应该是'var source' – 2016-05-19 15:54:23
@MickaelV。 - 谢谢..更新.. !! – 2016-05-19 16:41:16
- 1. WPF绑定到子集合
- 2. XAML绑定到子集合
- 3. 聚集绑定到子集合
- 4. 绑定到集合的集合WPF
- 5. Silverlight绑定集合里面的集合
- 6. XAML:绑定集合里面的集合
- 7. 序言:检查是否未绑定集绑定集合的子集
- 8. 绑定到返回子集合的集合中的属性
- 9. 无法绑定silverlight中的子集合
- 10. 绑定集合,组合框
- 11. WPF TreeView绑定多个子集合
- 12. WPF/MVVM - 绑定子控件集合
- 13. 绑定的BindingList到集合
- 14. 多的ItemsSource集合绑定
- 15. 绑定到DataGridView的集合
- 16. GridView的 - 绑定集合
- 17. 绑定到绑定列表的子集
- 18. 产生的给定集合的子集
- 19. Knockout和MVC集合绑定
- 20. 将datagrid绑定到集合
- 21. 将集合绑定到DataGrid
- 22. 在MVC中绑定集合
- 23. 将集合绑定到Ninject
- 24. 绑定WPF4 Datagrid空集合
- 25. 将ObservableCollection绑定到集合
- 26. XAML绑定集合的子项到视图模型根的另一个集合
- 27. WPF使用仅集合的项目的子集绑定到一个组合
- 28. 绑定组合框的集合
- 29. 绑定集合的内部集合在WPF的ComboBox
- 30. 如何将WPF Datagrid的itemssource绑定到集合的集合?
谢谢,这是从我可以告诉的过滤最清洁和最明显的方式。 – dotancohen 2012-03-08 19:24:15