I'll check it out
So after little reading I found out the solution.
var filterDescriptors = EventsListViewModel.Events.ResultItems.FilterDescriptors;
foreach (var gridColumnFilter in filterDescriptors.OfType<
(gridColumnFilter as IColumnFilterDescriptor).DistinctFilter.Clear();
I need to prevent removing of programatically set filters, so I i filter FilterDescriptors to get only column types (those ae set by the user).
The trick to refresh distinct values checkboxes was to clear distinct filters before removing the filter from the collection.
I think it's a bug because removing the filters should update visual state of the controls (list of checkboxes)
I attached 2 videos
http://screencast.com/t/Jo57uFVPzxRY BAD using 1st v of code
http://screencast.com/t/s6bE7GRIdI7U GOOD using my workaround