2009-05-27 9 views
8

Estoy usando el kit de herramientas: DataGrid de CodePlex.¿Cómo puedo establecer el enlace de un DataGridTextColumn en el código?

Estoy generando las columnas en el código.

¿Cómo puedo establecer el equivalente de {Binding FirstName} en el código?

O bien, ¿cómo puedo simplemente establecer el valor, eso es todo lo que tengo que hacer, no necesariamente obligarlo. Solo quiero el valor de la propiedad de mi modelo en la celda de la cuadrícula de datos.

DataGridTextColumn dgtc = new DataGridTextColumn(); 
dgtc.Header = smartFormField.Label; 
dgtc.Binding = BindingBase.Path = "FirstName"; //PSEUDO-CODE 
dgtc.CellValue= "Jim"; //PSEUDO-CODE 
CodePlexDataGrid.Columns.Add(dgtc); 

Respuesta

18

no probado, pero el siguiente debería funcionar:

dgtc.Binding = new Binding("FirstName"); 
2

Ejemplo:

DataGridTextColumn dataColumn = new DataGridTextColumn(); 
dataColumn.Header = "HeaderName"; 
dataColumn.Binding = new Binding("HeaderBind"); 
dataGrid.Columns.Add(dataColumn); 
5

La primera respuesta acerca de la nueva unión es correcta para mí, también. .. El problema principal para usar esa respuesta era que la unión pertenece a cuatro espacios de nombres 8- (el espacio de nombre correcto es System.Windows.Data (.NET 4, VS2010) Esto lleva a una respuesta más completa:

dgtc.Binding = new System.Windows.Data.Binding("FirstName"); 

Una nota al margen:..

En mi caso el contexto para establecer la unión fue la iteración sobre las columnas de la cuadrícula de datos Antes de que sea posible cambiar el enlace es necesario emitir el DataGridColumn clase base a DataGridTextColumn Entonces es posible cambiar la encuadernación:

int pos = 0; 
var dgtc = dataGrid.Columns[pos] as DataGridTextColumn; 
dgtc.Binding = new System.Windows.Data.Binding("FirstName"); 
Cuestiones relacionadas