我有一個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