Quantcast
Channel: Telerik Forums RSS
Viewing all articles
Browse latest Browse all 78072

Clear all filters - programmatically

$
0
0

Just in case anyone would find this useful:

 

public void Prepare(Telerik.Windows.Controls.GridViewColumn columnToPrepare)       {           _column = columnToPrepare;           CollectionChangedEventManager.AddHandler(_column.DataControl.FilterDescriptors, FilterDescriptors_CollectionChanged);           IFilterDescriptor f = _column.DataControl.FilterDescriptors.OfType<FilterDescriptor>().FirstOrDefault(p => p.Member == "Readiness");           if (f == null)               f = _column.DataControl.FilterDescriptors.OfType<CompositeFilterDescriptor>().FirstOrDefault(p => p.FilterDescriptors.OfType<FilterDescriptor>().Any(v => v.Member == "Readiness"));           var l = new List<FilterDescriptor>();           if (f is CompositeFilterDescriptor)           {               l.AddRange((f as CompositeFilterDescriptor).FilterDescriptors.Cast<FilterDescriptor>());           }           else if (f is FilterDescriptor)               l.Add((f as FilterDescriptor));           IsActive = f != null;           foreach (var cb in this.FindVisualChild<Grid>().FindVisualChildren<CheckBox>())           {               if (f == null)                   cb.IsChecked = false;               else                {                   cb.IsChecked = (cb == production && l.Any(fd => (ReadinessState)fd.Value == ReadinessState.PRODUCTION))                       || (cb == development && l.Any(fd => (ReadinessState)fd.Value == ReadinessState.DEVELOPMENT));               }           }       }

 

private void FilterDescriptors_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)       {           var coll = sender as ObservableCollection<IFilterDescriptor>;           IFilterDescriptor f = coll.OfType<FilterDescriptor>().FirstOrDefault(p => p.Member == "Readiness");           if (f == null)               f = coll.OfType<CompositeFilterDescriptor>().FirstOrDefault(p => p.FilterDescriptors.OfType<FilterDescriptor>().Any(v => v.Member == "Readiness"));           CollectionChangedEventManager.AddHandler(coll, FilterDescriptors_CollectionChanged);           var l = new List<FilterDescriptor>();           if (f is CompositeFilterDescriptor)           {               l.AddRange((f as CompositeFilterDescriptor).FilterDescriptors.Cast<FilterDescriptor>());           }           else if (f is FilterDescriptor)               l.Add((f as FilterDescriptor));           IsActive = f != null;       }

 

 

 


Viewing all articles
Browse latest Browse all 78072

Trending Articles