Связать подмножество коллекции
У меня есть ObservableCollection<Person>
объект. Person
объекты имеют Name
а также Type
свойства, где Type
либо student
или же teacher
, Есть ли способ связать ComboBox
к подмножеству ObservableCollection<Person>
объект, где Type
собственность только teacher
?
3 ответа
Решение
Вы можете сделать это программно следующим образом:
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;
}
}
Вы можете привязать ваш ComboBox ItemSource с помощью этого свойства. Когда какой-либо элемент добавляется или удаляется из вашей исходной коллекции, эта коллекция будет автоматически отфильтрована.
Это поможет вам
Связывание WPF с Комбо, используя только подмножество элементов Коллекции
Здесь упоминаются такие понятия, как CollectionViewSource, Filters ecc...
Посмотрите также на