BrightIdeasSoftware.ObjectListView.UpdateColumnFiltering C# (CSharp) Method

UpdateColumnFiltering() public method

Update the filtering of this ObjectListView based on the value filtering defined in each column
public UpdateColumnFiltering ( ) : void
return void
        public virtual void UpdateColumnFiltering()
        {
            //List<IModelFilter> filters = new List<IModelFilter>();
            //IModelFilter columnFilter = this.CreateColumnFilter();
            //if (columnFilter != null)
            //    filters.Add(columnFilter);
            //if (this.AdditionalFilter != null)
            //    filters.Add(this.AdditionalFilter);
            //this.ModelFilter = filters.Count == 0 ? null : new CompositeAllFilter(filters);

            if (this.AdditionalFilter == null)
                this.ModelFilter = this.CreateColumnFilter();
            else {
                IModelFilter columnFilter = this.CreateColumnFilter();
                if (columnFilter == null)
                    this.ModelFilter = this.AdditionalFilter;
                else {
                    List<IModelFilter> filters = new List<IModelFilter>();
                    filters.Add(columnFilter);
                    filters.Add(this.AdditionalFilter);
                    this.ModelFilter = new CompositeAllFilter(filters);
                }
            }
        }

Usage Example

        /// <summary>
        /// Apply the selected values from the given list as a filter on the given column
        /// </summary>
        /// <param name="checkedList">A list in which the checked items should be used as filters</param>
        /// <param name="column">The column for which a filter should be generated</param>
        virtual protected void EnactFilter(ToolStripCheckedListBox checkedList, OLVColumn column)
        {
            ObjectListView olv = column.ListView as ObjectListView;

            if (olv == null || olv.IsDisposed)
            {
                return;
            }

            // Collect all the checked values
            ArrayList chosenValues = new ArrayList();

            foreach (object x in checkedList.CheckedItems)
            {
                ICluster cluster = x as ICluster;
                if (cluster != null)
                {
                    chosenValues.Add(cluster.ClusterKey);
                }
            }
            column.ValuesChosenForFiltering = chosenValues;

            olv.UpdateColumnFiltering();
        }
ObjectListView