2011-09-19 47 views
1

我已经看了看,但我还没有找到遇到同样问题的人,我试图解决 - 但我认为这是很多人可能会从中受益:部分绑定到列表或ObservableCollection,基于属性

简而言之,我想要一个List(一个ObservableCollection,理想情况下),我可以绑定到一个ListBox,一个DataGrid,ComboBox,你有什么。但我不只是想简单地绑定到整个列表 - 相反,我想绑定到列表中符合条件的特定集合。我希望它是可观察的,以便项目管理自己并且不重置。另一种方式把它过滤约束力,也许......

例如,假设一个清单:

FilteredObservableCollection<Person> people = new FilteredObservableCollection<Person>(); 
people.Add(new Person() { Name = "John Smith", IsMale = True }); 
people.Add(new Person() { Name = "Jane Doe", IsMale = False }); 
people.Add(new Person() { Name = "Fanny Mae", IsMale = False }); 
people.Add(new Person() { Name = "Freddie Mac", IsMale = True }); 

然后我会结合我的DataGrid:

myDataGrid.ItemsSource =人;

myDataGrid会默认列出所有人。

不过,如果我设置:

people.Filter = "IsMale" 

FilteredObservableCollection就只能是男性的列表(同时仍保持完整,并且未筛选列表)

或者,也许我过思考这可能是一些棘手的使用转换器和触发器的可能吗?我知道有一些控件 - Telerik控件和其他 - 可以在数据网格上提供某种级别的过滤,但是我正在寻找一种解决方案,它更偏向于集合的一侧,而不是集合的对象结合。

反正,在我走之前获得自己的ObservableCollection,我想我会看看其他人都经历过......提前

谢谢!

回答

相关问题