1. ObservableCollection 에서 View 를 생성한다.
2. 생성된 View에 Filter를 적용한다.
3. 조건이 변경되면 View를 Refresh해준다.
일반적인 Collection에서 추가해줘야 하는것은...
View 를 구해서 Filter를 적용하는 소스, Filter구현, 조견변경시 Refresh 해주는 코드 1줄.
이렇게 3가지 입니다.
#region Students private ObservableCollectionitems = new ObservableCollection (); public ObservableCollection Items { get { if (this.items == null) { this.items = new ObservableCollection (); } var view = CollectionViewSource.GetDefaultView(this.items); if (view.CanFilter) { view.Filter = this.TestFilter; } return this.items; } } private bool TestFilter(object item) { string Item = item as Student; if (this.SelectedGender == null ) return true; if (this.SelectedGender== Item.Gender) return true; return false; } #endregion #region SelectedGender private string selectedGender; public string SelectedGender { get { return this.selectedGender; } set { if (this.selectedGender != value) { this.selectedGender = value; this.RaisePropertyChanged("SelectedGender"); CollectionViewSource.GetDefaultView(this.Items).Refresh(); } } } #endregion