c# - from - Forma correcta de desvincular un BindingSource de un DataGridView
datagridview databind c# (2)
Tengo un BindingList <> de objetos, establecido en el DataSource de un BindingSource. Esto se establece en DataSource de DataGridView.
Me preocupa no causar posibles fugas de memoria, por lo que me pregunto si hay una forma preferida de desvincular estas conexiones cuando haya terminado con los datos.
Estoy pensando en:
datagridview.DataSource = null;
bindingsource.DataSource = null;
bindingsource.Clear();
Para volver a unir:
bindingsource.DataSource = bindinglist<myObjects>;
datagridview.DataSource = bindingsource;
¿Es correcto este orden o realmente importa? ¿He omitido algo que debería estar allí?
Cualquier puntero apreciado, gracias.
Asignar null a datagridview DataSource es la mejor manera de borrar la fuente de datos de la grilla, estás en lo correcto.
Si usa columnas personalizadas, establezca AutoGenerateColumns en false antes de borrar el DataSource. Esto garantizará que se conserven sus columnas personalizadas. De lo contrario, se borrarán y se generarán automáticamente en el siguiente DataBind.
datagridview.AutoGenerateColumns = false;
datagridview.DataSource = null;
Editar: No estoy seguro de por qué fue votado. Esta es la solución correcta para columnas generadas sin auto. Tengo el proyecto para probarlo. Espero que alguien lo encuentre útil.