internal bool SetFilterDesriptor(GridViewDataColumn dataColumn, FilterDescriptor descriptor)
        {
            bool             isDetached        = false;
            bool             flag              = false;
            FilterDescriptor filterDescriptor1 = this.GetFilterDescriptor(dataColumn, out isDetached);

            this.SuspendUpdate();
            if (dataColumn.SetFilterDescriptor(descriptor))
            {
                if (descriptor != null)
                {
                    this.Cache[(GridViewColumn)dataColumn] = (object)descriptor;
                }
                flag = true;
            }
            if ((isDetached || flag) && descriptor == null)
            {
                filterDescriptor1.Operator = FilterOperator.None;
                if (filterDescriptor1 is CompositeFilterDescriptor)
                {
                    dataColumn.FilterDescriptor = (FilterDescriptor)null;
                    FilterDescriptor filterDescriptor2 = new FilterDescriptor(dataColumn.Name, FilterOperator.None, (object)null);
                    this.Cache[(GridViewColumn)dataColumn] = (object)filterDescriptor2;
                }
            }
            this.ResumeUpdate();
            return(flag);
        }
 internal override object this[GridViewColumn column]
 {
     get
     {
         FilterDescriptor filterDescriptor = this.GetFilterDescriptor(column as GridViewDataColumn);
         if (filterDescriptor != null && filterDescriptor.Operator != FilterOperator.None && (filterDescriptor.Operator != FilterOperator.IsNull && filterDescriptor.Operator != FilterOperator.IsNotNull))
         {
             return(filterDescriptor.Value);
         }
         return((object)null);
     }
     set
     {
         bool isDetached = false;
         GridViewDataColumn dataColumn       = column as GridViewDataColumn;
         FilterDescriptor   filterDescriptor = this.GetFilterDescriptor(dataColumn, out isDetached);
         if (filterDescriptor == null)
         {
             return;
         }
         FilterOperator filterOperator = filterDescriptor.Operator;
         bool           flag           = !isDetached && (value == null || object.Equals(value, (object)string.Empty) || object.Equals(value, (object)char.MinValue));
         this.SuspendUpdate();
         if (flag)
         {
             if (!dataColumn.SetFilterDescriptor((FilterDescriptor)null))
             {
                 this.ResumeUpdate();
                 return;
             }
             filterDescriptor = this.GetFilterDescriptor(dataColumn);
         }
         filterDescriptor.Operator = filterOperator;
         GridViewDateTimeColumn viewDateTimeColumn = dataColumn as GridViewDateTimeColumn;
         if (viewDateTimeColumn != null && value is DateTime)
         {
             value = (object)GridViewHelper.ClampDateTime(Convert.ToDateTime(value), viewDateTimeColumn.FilteringMode);
         }
         filterDescriptor.Value = value;
         if (isDetached && value != null)
         {
             this.SetFilterDesriptor(dataColumn, filterDescriptor);
         }
         this.ResumeUpdate();
     }
 }