Как я могу установить привязку DataGridTextColumn в коде? - PullRequest
10 голосов
/ 27 мая 2009

Я использую инструментарий: DataGrid от CodePlex.

Я генерирую столбцы в коде.

Как я могу установить эквивалент {Binding FirstName} в коде?

Или, альтернативно, как просто установить значение , это все, что мне нужно сделать, не обязательно связывать его. Я просто хочу получить значение из моего свойства модели в ячейке в сетке данных.

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

Ответы [ 3 ]

20 голосов
/ 27 мая 2009

Не проверено, но должно работать следующее:

dgtc.Binding = new Binding("FirstName");
6 голосов
/ 01 апреля 2011

Первый ответ о новом Binding мне тоже подходит. Основная проблема при использовании этого ответа заключалась в том, что Binding принадлежит четырем пространствам имен 8- (. Правильное пространство имен - System.Windows.Data (.NET 4, VS2010). Это приводит к более полному ответу:

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

Примечание:

В моем случае контекстом для установки привязки была итерация по столбцам DataGrid. Прежде чем можно изменить привязку, необходимо привести базовый класс DataGridColumn к DataGridTextColumn. Тогда можно изменить привязку:

int pos = 0;
var dgtc = dataGrid.Columns[pos] as DataGridTextColumn;
dgtc.Binding = new System.Windows.Data.Binding("FirstName");
2 голосов
/ 22 ноября 2010

Пример:

DataGridTextColumn dataColumn = new DataGridTextColumn();
dataColumn.Header = "HeaderName";
dataColumn.Binding = new Binding("HeaderBind");
dataGrid.Columns.Add(dataColumn); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...