Hi,
I'm trying to use a radfilter that filters the items in my radgridview, based on textinput in a textbox
this is my code :
but I get the following exception :
depending on user selection, the control gets loaded and unloaded several times (datatemplate selector).
The code-line giving the exception is mFilter.FilterDescriptors.Add(birthDateFilter);
Surrounding this statement with a try-catch block solves the problem.
The filter continues to work, although an exception is thrown multiple times (every time the textchanged event is triggered)
I'm trying to use a radfilter that filters the items in my radgridview, based on textinput in a textbox
this is my code :
private void textBoxFilterValue_TextChanged(object sender, TextChangedEventArgs e){ string text = (sender as RadWatermarkTextBox).CurrentText; if (!string.IsNullOrEmpty(text)) { if (mGridView != null && mFilter != null) { FilterDescriptor birthDateFilter = new FilterDescriptor(); birthDateFilter.Member = "HtmlValue"; birthDateFilter.Operator = FilterOperator.Contains; birthDateFilter.Value = text; birthDateFilter.IsCaseSensitive = false; mFilter.FilterDescriptors.Add(birthDateFilter); } } else { mFilter.FilterDescriptors.Clear(); }}but I get the following exception :
at Telerik.Windows.Data.Expressions.EnumerableFilterOperatorExpressionBuilder.GenerateContainsMethodCall(Expression source, Expression value, Boolean shouldNegate)at Telerik.Windows.Data.Expressions.EnumerableFilterOperatorExpressionBuilder.GenerateContains(Expression left, Expression right)at Telerik.Windows.Data.Expressions.FilterOperatorExpressionBuilderBase.CreateExpression(Expression left, Expression right)at Telerik.Windows.Data.Expressions.OperatorValueFilterDescriptorExpressionBuilderBase.CreateBodyExpression()at Telerik.Windows.Data.FilterDescriptor.CreateFilterExpression(ParameterExpression parameterExpression)at Telerik.Windows.Data.FilterDescriptorBase.CreateFilterExpression(Expression instance)at Telerik.Windows.Data.Expressions.FilterDescriptorCollectionExpressionBuilder.CreateBodyExpression()at Telerik.Windows.Data.CompositeFilterDescriptor.CreateFilterExpression(ParameterExpression parameterExpression)at Telerik.Windows.Data.FilterDescriptorBase.CreateFilterExpression(Expression instance)at Telerik.Windows.Data.CompositeFilterDescriptorCollection.CreateFilterExpression(Expression instance)at Telerik.Windows.Data.ICompositeFilterDescriptorExtensions.GetFilterFunction(ICompositeFilterDescriptor filterDescriptors, Type itemType)at Telerik.Windows.Data.QueryableCollectionView.InitializeInternalList(IQueryable view)at Telerik.Windows.Data.QueryableCollectionView.CreateInternalList()at Telerik.Windows.Data.QueryableCollectionView.EnsureInternalList()at Telerik.Windows.Data.QueryableCollectionView.get_InternalList()at Telerik.Windows.Data.QueryableCollectionView.EnsureRootGroup()at Telerik.Windows.Data.QueryableCollectionView.get_Groups()at Telerik.Windows.Controls.GridView.BaseItemsControl.GetEffectiveItems(BaseItemsControl itemsControl)at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.EnsureIndexTree()at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.get_IndexTree()at Telerik.Windows.Controls.GridView.GridViewDataControl.InitializeShouldKeepScrollState()at Telerik.Windows.Controls.GridView.GridViewDataControl.OnItemsChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Controls.GridView.BaseItemsControl.OnItemCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.DataItemCollection.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.DataItemCollection.OnCollectionViewCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.Listener`2.ReceiveWeakEvent(Object sender, TArgs args)at Telerik.Windows.Data.WeakEvent.WeakListener`1.Handler(Object sender, TArgs args)at Telerik.Windows.Data.QueryableCollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)at Telerik.Windows.Data.QueryableCollectionView.RefreshOverride()at Telerik.Windows.Data.QueryableCollectionView.RefreshInternal()at Telerik.Windows.Data.QueryableCollectionView.RefreshOrDefer()at Telerik.Windows.Data.QueryableCollectionView.InvalidatePagingAndRefresh()at Telerik.Windows.Data.QueryableCollectionView.OnFilterDescriptorsCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.RadObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.ObservableItemCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)at Telerik.Windows.Data.RadObservableCollection`1.InsertItem(Int32 index, T item)at Telerik.Windows.Data.FilterDescriptorCollection.InsertItem(Int32 index, IFilterDescriptor item)at System.Collections.ObjectModel.Collection`1.Insert(Int32 index, T item)at System.Collections.ObjectModel.Collection`1.System.Collections.IList.Insert(Int32 index, Object value)at Telerik.Windows.Data.CollectionHelper.Insert(IList target, IEnumerable newItems, Int32 startingIndex, IEqualityComparer itemComparer)at Telerik.Windows.Data.ObservableCollectionManager.HandleCollectionChanged(IList sender, NotifyCollectionChangedEventArgs args)at Telerik.Windows.Data.ObservableCollectionManager.Telerik.Windows.Data.IWeakEventListener<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.ReceiveWeakEvent(Object sender, NotifyCollectionChangedEventArgs args)at Telerik.Windows.Data.WeakEvent.WeakListener`1.Handler(Object sender, TArgs args)at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.RadObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.ObservableItemCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)at Telerik.Windows.Data.RadObservableCollection`1.InsertItem(Int32 index, T item)at Telerik.Windows.Data.FilterDescriptorCollection.InsertItem(Int32 index, IFilterDescriptor item)at System.Collections.ObjectModel.Collection`1.Insert(Int32 index, T item)at System.Collections.ObjectModel.Collection`1.System.Collections.IList.Insert(Int32 index, Object value)at Telerik.Windows.Data.CollectionHelper.Insert(IList target, IEnumerable newItems, Int32 startingIndex, IEqualityComparer itemComparer)at Telerik.Windows.Data.ObservableCollectionManager.HandleCollectionChanged(IList sender, NotifyCollectionChangedEventArgs args)at Telerik.Windows.Data.ObservableCollectionManager.Telerik.Windows.Data.IWeakEventListener<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.ReceiveWeakEvent(Object sender, NotifyCollectionChangedEventArgs args)at Telerik.Windows.Data.WeakEvent.WeakListener`1.Handler(Object sender, TArgs args)at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.RadObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.ObservableItemCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)at Telerik.Windows.Data.RadObservableCollection`1.InsertItem(Int32 index, T item)at Telerik.Windows.Data.FilterDescriptorCollection.InsertItem(Int32 index, IFilterDescriptor item)at System.Collections.ObjectModel.Collection`1.Insert(Int32 index, T item)at System.Collections.ObjectModel.Collection`1.System.Collections.IList.Insert(Int32 index, Object value)at Telerik.Windows.Data.CollectionHelper.Insert(IList target, IEnumerable newItems, Int32 startingIndex, IEqualityComparer itemComparer)at Telerik.Windows.Data.ObservableCollectionManager.HandleCollectionChanged(IList sender, NotifyCollectionChangedEventArgs args)at Telerik.Windows.Data.ObservableCollectionManager.Telerik.Windows.Data.IWeakEventListener<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.ReceiveWeakEvent(Object sender, NotifyCollectionChangedEventArgs args)at Telerik.Windows.Data.WeakEvent.WeakListener`1.Handler(Object sender, TArgs args)at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.RadObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.ObservableItemCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)at Telerik.Windows.Data.RadObservableCollection`1.InsertItem(Int32 index, T item)at Telerik.Windows.Data.FilterDescriptorCollection.InsertItem(Int32 index, IFilterDescriptor item)at System.Collections.ObjectModel.Collection`1.Insert(Int32 index, T item)at System.Collections.ObjectModel.Collection`1.System.Collections.IList.Insert(Int32 index, Object value)at Telerik.Windows.Data.CollectionHelper.Insert(IList target, IEnumerable newItems, Int32 startingIndex, IEqualityComparer itemComparer)at Telerik.Windows.Data.ObservableCollectionManager.HandleCollectionChanged(IList sender, NotifyCollectionChangedEventArgs args)at Telerik.Windows.Data.ObservableCollectionManager.Telerik.Windows.Data.IWeakEventListener<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.ReceiveWeakEvent(Object sender, NotifyCollectionChangedEventArgs args)at Telerik.Windows.Data.WeakEvent.WeakListener`1.Handler(Object sender, TArgs args)at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.RadObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at Telerik.Windows.Data.ObservableItemCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)at Telerik.Windows.Data.RadObservableCollection`1.InsertItem(Int32 index, T item)at Telerik.Windows.Data.FilterDescriptorCollection.InsertItem(Int32 index, IFilterDescriptor item)at System.Collections.ObjectModel.Collection`1.Add(T item)at Artemis.Window1.textBoxFilterValue_TextChanged(Object sender, TextChangedEventArgs e) in R:\WPF\Sln_Huisartsen\Artemis\Window1.xaml.cs:line 187depending on user selection, the control gets loaded and unloaded several times (datatemplate selector).
The code-line giving the exception is mFilter.FilterDescriptors.Add(birthDateFilter);
Surrounding this statement with a try-catch block solves the problem.
The filter continues to work, although an exception is thrown multiple times (every time the textchanged event is triggered)