c# - tablix - Imposible establecer la fila visible como falsa de una vista de tabla de datos
mostrar datos en un datagridview c# (3)
No se puede establecer la propiedad visible de la fila DataGridView en falso cuando el índice de fila actual se encontrará con dicho error si se intenta ocultar la celda actual
soulution:
cuando su origen de DatosDataGridView no es nulo:
CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[yourDataGridView.DataSource];
currencyManager1.SuspendBinding();
yourDataGridView.Rows[Target Index].Visible = false;
currencyManager1.ResumeBinding();
cuando su origen de datos DataGridView es nulo:
yourDataGridView.CurrentCell = null;
yourDataGridView.Rows[Target Index].Visible = false;
Tengo un DataGridView
donde establezco DataSource
:
taskerEntities te = new taskerEntities();
var OMsMasterDescriptiveIndicators = te.MyTable.Select(x => new lccls {Id = x.Id, name = x.name }).ToList();
MyGrid.DataSource = OMsMasterDescriptiveIndicators;
con mi class lccls
como
public class lccls
{
public string Id { get; set; }
public Nullable<decimal> name { get; set; }
}
En un determinado evento, quiero que la fila actual sea invisible:
MyGrid.Rows[5].Visible = false;
Pero no puedo hacer esto. En su lugar, se lanza una excepción con el siguiente mensaje de error:
La fila asociada a la posición del administrador de divisas no puede hacerse invisible
Sospecho que el motivo está relacionado con la configuración de DataSource
, pero ¿por qué?
Tengo un ejemplo para U. Tengo una vista de cuadrícula de datos que puede ser una fila multiseleccionada. Cuando hago clic en el botón para ver la fila falsa que seleccionó. Prueba esto:
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
CurrencyManager currencyManager1 =(CurrencyManager)BindingContext[dataGridView1.DataSource];
currencyManager1.SuspendBinding();
dataGridView1.CurrentCell = null;
row.Visible = false;
}
dataGridView1.Refresh();
Recuerde establecer la propiedad SelectionMode: FullRowSelect
Después de buscar mucho, obtuve la solución
CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[MyGrid.DataSource];
currencyManager1.SuspendBinding();
MyGrid.Rows[5].Visible = false;
currencyManager1.ResumeBinding();