Hay dos problemas en el código que has mostrado.
El primer problema es que estás intentando modificar una secuencia paralela, que al asignarla cómo datasource es de solo lectura.
Y el segundo problema es que estás intentando modificar dos colecciones que están sincronizadas entre sí (RadGridView.Rows <> RadGridView.SelectedRows):
Solución al primer problema es no usar el paralelismo ya que tienes pensado modificar la colección.
Solución al segundo problema es desactivar las notificaciones del control/colecciones.
Saludos
El primer problema es que estás intentando modificar una secuencia paralela, que al asignarla cómo datasource es de solo lectura.
CitarCódigo (csharp,2) [Seleccionar]...
rgv.DataSource = dt.DefaultView.AsParallel();
...
Y el segundo problema es que estás intentando modificar dos colecciones que están sincronizadas entre sí (RadGridView.Rows <> RadGridView.SelectedRows):
CitarCódigo (csharp,2) [Seleccionar]...
foreach (GridViewRowInfo row in rgv.SelectedRows)
...
Solución al primer problema es no usar el paralelismo ya que tienes pensado modificar la colección.
Código (csharp) [Seleccionar]
...
rgv.DataSource = dt.DefaultView
...
Solución al segundo problema es desactivar las notificaciones del control/colecciones.
Código (csharp) [Seleccionar]
using (RadGridView1.DeferRefresh())
{
foreach (GridViewRowInfo row in RadGridView1.SelectedRows) {
RadGridView1.Rows.Remove(row);
}
} // El método RadGridView.DeferRefresh() internamente es lo mismo que utilizar RadGridView.BeginUpdate() + RadGridView.EndUpdate(), pero de un modo elegante.
Saludos