/// <summary> /// Construct new MemberListViewModel. /// </summary> /// <param name="name">Name of the view. To be displayed in the user interface</param> /// <param name="container">The member container</param> /// <param name="restrictor">The filter to restrict members shown in this view.</param> public MemberListViewModel(string name, MembersContainer container, Dispatcher dispatcher, MemberCollectionView mcv) { base.DisplayName = name; this.Collection = mcv.CollectionView; this.SelectedItems = new ObservableCollection<MemberViewModel>(); this.MenuOptions = new ObservableCollection<Control>(); new MemberListViewMenu(this, container); this.SelectedItems.CollectionChanged += delegate { this.OnPropertyChanged("StatusText"); }; // Gather list of implemented filters in this assembly. CompositionHelper.ComposeInExecutingAssemblyWithExported<IMemberListView>(this); DefineFilters(mcv); }
private void DefineFilters(MemberCollectionView mcv) { _textFilterPredicate = (MemberViewModel member) => { return String.IsNullOrEmpty(FilterString) ? true : member.DisplayName.ToLower().Contains(FilterString.ToLower()); }; mcv.Filters.Add(_textFilterPredicate); }