2012-03-19 19 views
6

En mi Windows Form tengo un componente DataGridView, que está vinculado a un BindingSource. BindingSource es una fuente de datos objeto a un objeto EntityFramework.DataGridView genera automáticamente columnas

Algunas veces las columnas en mi DataBridView se renuevan. A veces, todas las propiedades se agregan como columna, pero ahora también eliminó todas mis columnas. Perdí todas mis configuraciones

¿Cuándo las columnas se agregan automáticamente?

(estoy usando VS.NET 2010)

Actualización:

// 
// Summary: 
//  Gets or sets a value indicating whether columns are created automatically 
//  when the System.Windows.Forms.DataGridView.DataSource or System.Windows.Forms.DataGridView.DataMember 
//  properties are set. 
// 
// Returns: 
//  true if the columns should be created automatically; otherwise, false. The 
//  default is true. 
[Browsable(false)] 
[EditorBrowsable(EditorBrowsableState.Advanced)] 
[DefaultValue(true)] 
public bool AutoGenerateColumns { get; set; } 

La propiedad no se presentó en el diseñador, y "ocultación de propiedades avanzadas" no esté marcada.

Actualización 2: Cuando actualizo el modelo de mi entidad marco, todas las columnas se vuelven a agregar. Solo puedo establecer la propiedad en el constructor del formulario. Esto es muy molesto

+0

Establezca la propiedad [AutoGenerateColumns] (http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.autogeneratecolumns.aspx) de DataGridView en false. –

+0

Estoy configurando AutoGenerateColumns = false en el constructor de formularios, pero sigo teniendo el problema –

Respuesta

4

En realidad, no sé cuándo sucede esto, pero tiendo a crear todas las columnas manualmente. Creo las columnas en el diseñador y establezco la propiedad AutoGenerateColumns en false en mi código.

+1

Muchas gracias. Eso es lo que hice, diseñé manualmente las columnas y los tamaños. La propiedad no aparece en el diseñador, pero ahora la configuré en código. – Bojo

+1

Sí, no sé por qué esta propiedad no se puede establecer en el diseñador; ha sido así desde Visual Studio 2005 ... –

2

añadir este código o cambiar su propiedad DataGridView AutoGenerateColumns en false

DataGridView1.AutoGenerateColumns=false; 
+1

Ver la actualización de mi pregunta. No puedo responder preguntas todavía – Bojo

1

Trate de salir de columnas primero de auto generados y configurarlo visibilidad falsa. Si no sirve, intente dejarlos todos con Visible = false. Perdón por mal inglés.

1

Establezca la propiedad AutoGenerateColumns en False pero recuerde hacerlo justo antes de enlazar datos. por ejemplo: DataGridView1.AutoGenerateColumns=false; DataGridView1.DataSource=getData();

Por defecto está configurado en True.

Cuestiones relacionadas