estoy programando un win form en vb.net.
Tengo dos dataGrids, uno que guarda una serie de registros posibles (que el usuario podrá seleccionar/quitar) y otro que guarda el conjunto de esos registros que han sido seleccionados por el usuario. La única diferencia entre uno y otro es que en el primero hay una columna de tipo booleano que sirve para seleccionar dicho registro.
Tengo una etiqueta que en el evento click tiene el siguiente código (sirve para ver qué modelos están actualmente seleccionados y poner a true en el dataGrid de selección la columna booleana)
Código:
El caso es que este código funciona de manera muy rara:Dim i, j As Integer For i = 0 To modelosPosibles.Tables(0).Rows.Count - 1 If modelos.Tables(0).Rows.Find(modelosPosibles.Tables(0).Rows(i).Item(1)) Is Nothing Then DataGridModelosPosibles.Item(i, 0) = False Else DataGridModelosPosibles.Item(i, 0) = True End If Next
Si aplico formato al dataGrid (añadiéndole un tableStyle al cargar el formulario) no funciona: dice que el item (i,0) está fuera de rango. Sin embargo, si lo corro en modo depuración, al consultar en la inspección de variables el valor de dataGridModelosPosibles.visibleRowCount está a 0. Si en vez de esto consulto dataGridModelosPosibles y lo despliego, la propiedad visibleRowCount está a 2. Si ahora vuelvo a la ejecución paso a paso, este fragmento de código funciona

Sin aplicar formato al dataGrid, todo funciona perfectamente

¿Alguien sabe qué es lo que pasa? Es una cosa raríiiiiiiiiiiiiiiiiiiiisima, ¿no?