Связать подмножество коллекции - PullRequest
3 голосов
/ 08 марта 2012

У меня есть ObservableCollection<Person> объект. Объекты Person имеют свойства Name и Type, где Type равно либо student, либо teacher. Есть ли способ связать ComboBox с подмножеством объекта ObservableCollection<Person>, где свойство Type имеет значение teacher?

Ответы [ 3 ]

8 голосов
/ 08 марта 2012

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 с этим свойством.Когда какой-либо элемент добавляется или удаляется из вашей исходной коллекции, эта коллекция будет автоматически отфильтрована.

2 голосов
/ 08 марта 2012

Это вам поможет

Связывание WPF с Комбо, используя только подмножество элементов Коллекции

Здесь упоминаются такие понятия, как CollectionViewSource, Filters ecc ...

Взгляните также на

Привязка данных к части коллекции

1 голос
/ 08 марта 2012

Вы можете сделать это программно следующим образом:

MyComboBox.ItemsSource = a.Where((obj, r) => { return (obj.Type == "student"); }).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...