2009-05-27 13 views
8

Ich verwende das Toolkit: DataGrid von CodePlex.Wie kann ich die Bindung einer DataGridTextColumn im Code festlegen?

Ich erzeuge die Spalten im Code.

Wie kann ich die Entsprechung von {Binding FirstName} im Code festlegen?

Oder alternativ, wie kann ich nur den Wert setzen, das ist alles was ich tun muss, nicht unbedingt binden. Ich möchte nur den Wert aus meiner Modelleigenschaft in der Zelle im 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); 

Antwort

18

Ungeprüfte, aber die folgenden sollte funktionieren:

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

Beispiel:

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

Die erste Antwort über die neue Bindung für mich richtig ist, auch. .. Das Hauptproblem, dass die Antwort zu verwenden, war, dass die Bindung an vier Namespace gehört 8- (Die richtige Namespace ist System.Windows.Data (.NET 4, VS2010) Dies führt zu einer vollständigere Antwort:

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

Eine Randnotiz:

In meinem Fall war der Kontext, um die Bindung zu setzen, die Iteration über die Spalten des DataGrid. Bevor es möglich ist, die Bindung zu ändern, ist es notwendig, die Basisklasse DataGridColumn zu DataGridTextColumn zu konvertieren möglich, die Bindung zu ändern:

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