2009-05-27 9 views
8

Sto utilizzando il toolkit: DataGrid di CodePlex.Come posso impostare l'associazione di un DataGridTextColumn nel codice?

Sto generando le colonne nel codice.

Come è possibile impostare l'equivalente di {Binding FirstName} nel codice?

O in alternativa, come posso solo impostare il valore, è tutto ciò che devo fare, non necessariamente associarlo. Voglio solo il valore dalla proprietà del mio modello nella cella nel datagrid.

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

risposta

18

testato, ma il seguente dovrebbe funzionare:

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

Esempio:

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

La prima risposta circa la nuova associazione è corretta anche per me. .. Il problema principale da usare che risposta è stata che il legame appartiene a quattro namespace 8- (la correttezza dei namespace è System.Windows.Data (NET 4, VS2010) Questo porta ad una risposta più completa:

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

Una nota a margine:

Nel mio caso il contesto per impostare l'associazione era l'iterazione sulle colonne di DataGrid.Prima che sia possibile modificare l'associazione è necessario eseguire il cast della classe base DataGridColumn su DataGridTextColumn. possibile modificare la rilegatura:

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