hola
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:
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
El caso es que este código funciona de manera muy rara:
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?