SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: joanca en Lunes 23 de Octubre de 2006, 08:52

Título: Añadir Rows Después De Un Filtro De Datos
Publicado por: joanca en Lunes 23 de Octubre de 2006, 08:52
Hola a todos/as.

Tengo un problema al que no lo encuentro la solución.

Dispongo de un DataSet con una sola tabla, un BindingSource con el DataSource indicando el DataSet, y un DataGridView con el DataSource indicando el BindingSource. A partir de ahí monto todo el mantenimiento de datos (Altas, Bajas, Modificaciones), y en las Altas añado un nuevo DataRow en la Tabla del DataSet que se muestra en el DataGridView, y me posiciono en él para entrar los nuevos datos.


DataTable dataTable = dataSet.Tables[0];
DataRowCollection dataRowCollection = dataTable.Rows;
DataRow dataRow;
dataRow = dataTable.NewRow();
dataRow[0] = string.Empty;
dataRow[1] = string.Empty;
dataRowCollection.Add(dataRow);
bindingSource.Position = bindingSource.Count - 1;


Hasta aquí todo correcto y funciona perfecto, pero el problema viene cuando hago un Filtro de Datos para mostrar en la lista del DataGridView solamente una parte de los Registros, cosa que consigo a partir de un DataView de la siguiente manera :


DataView dataView = new DataView(dataSet.Tables[0]);
dataView.RowFilter = "campo1 = 'A'";
bindingSource.Filter = dataView.RowFilter;


El resultado es satisfactorio y se muestran bien los datos del Filtro en el DataGridView, pero cuando intento dar de alta un nuevo registro con un nuevo DataRow no se me posiciona en el nuevo registro para dar de alta, y a partir de ahí se me descontrola el programa.

He revisado la ayuda referente a BindingSource y Filtros, y creo que lo estoy ejecutando correctamente pero no se donde estoy fallando.

Si alguien tiene alguna idea o ejemplo de como hacerlo se lo agradezco.

Saludos.