How can I ensure that all current data in the grid is correctly filtered, even when cells are updated after the row is added?
10 Answers, 1 is accepted
This seems a bit strange, the Grid should handle the change and exclude the item. May I ask to provide a bit more information on your project? Are there any customizations that could interfere with the default behavior? A sample project would be very nice!
As a side note, you can try raising a CollectionChanged event for your ItemsSource after the edit with a status Reset, which will take care of the issue.
Hope this helps!
Just a quick follow-up. The grid view handles the change only on BeginEdit + EndEdit methods calls combination.
You need to raise a collection change of any kind to enable the behavior otherwise. The easiest way is to add and remove a dummy object in your collection.
Hope this helps!
Can we please keep all related forum posts in one thread, since as it appears that they discuss the same thing. Please, see my answer to your other forum post which asks the same. Thank you.
"I'm not editing the grid itself. I would expect that when a row fires a NPC event for a filtered property, the filter should detect this and update?"
It will not update for performance reasons and that is by design. We don't recreate a view which can contain millions of records simply because one of the properties of one of them has changed.
You have three options in order of preference:
1. BeginEdit -> EndEdit. Read my other post.
2. Remove your item from the collection, edit it, and then add it back again. We will determine whether it passes the filter and so on.
3. Call RadGridView.Rebind if you want to re-create the entire view and don't care about performance.
Now, I would like to ask you to keep our conversations in as little number of different threads as possible, since at the moment there are like 5 threads for one and the same subject and you are speaking with different support officers simultaneously and there is quite a lot of miscommunication, i.e. we are explaining the same thing in 3 different threads.
I would consider all my questions to actually be separate issues, hence the different threads. This and the nested bindings questions perhaps overlap, but I considered this a filtering issue. It just turns out they may be both fixed by the same underlying changes.
I am sorry to hear that the way the filtering mechanism is designed does not fulfill your project needs. Unfortunately, as my colleague has stated in the thread, we have decided to give priority to the performance of the filtering and updating the filters on PropertyChanged will be a costly operation in such perspective. With this in mind, I suggest you consider the options for bypassing the default behavior that discussed in the thread.
Telerik by Progress
Add and remove not working, Filter still not working
var dummyItem = new ResponseModel();
RecordList is my ObservableCollection which binded my RadGridView.
It is a bit strange that this approach does not work as it will force a CollectionChanged notification. What I can suggest you as an alternative that is not already discussed in this thread, is to use the Edititem method of the Items collection of RadGridView. The UI will be notified about the property value change and the filtering will be reapplied. Can you please take a look at the Edit an item outside RadGridView help article as it covers the approach in details?
I hope it helps.