20000 строк много:)
что произойдет, если вы отключите привязку ItemsSource, измените свой список в своей модели представления и установите для itemssource новый проверенный список?
в противном случае, если они хотят 20000, они могут подождать;)
EDIT
если вы не изменили свой источник предметов, вы должны поднять свойство изменено для каждого предмета, в противном случае вы не увидите изменений.
другой способ - установить привязку на ноль или новый список.
this.MyGridItemsViewModelProperty = new List();//"disconnect" the binding to the grid for the all check/uncheck
затем измените свой реальный список с помощью флажка / снимите флажок и установите его в качестве сетки ItemsSource
this.MyGridItemsViewModelProperty = myupdatelist;
сетка
<Grid ItemsSource="{Binding MyGridItemsViewModelProperty}" />
но я не знаю, если второй подход быстрее, вы должны проверить его.