2009-05-27 23 views
8

Tôi đang sử dụng bộ công cụ: DataGrid từ CodePlex.Làm thế nào tôi có thể đặt ràng buộc của một DataGridTextColumn trong mã?

Tôi đang tạo các cột trong mã.

Tôi làm cách nào để đặt tương đương với {Binding FirstName} trong mã?

Hoặc cách khác, làm cách nào tôi có thể chỉ đặt giá trị, đó là tất cả những gì tôi cần làm, không nhất thiết phải ràng buộc nó. Tôi chỉ muốn giá trị từ thuộc tính mô hình của tôi trong ô trong 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); 

Trả lời

18

chưa được kiểm tra, nhưng sau đây nên làm việc:

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

Ví dụ:

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

Câu trả lời đầu tiên về Binding mới là đúng đối với tôi, quá. .. Vấn đề chính để sử dụng câu trả lời đó là Ràng buộc thuộc với bốn không gian tên 8- (Không gian tên đúng là System.Windows.Data (NET 4, VS2010) Điều này dẫn đến một câu trả lời hoàn chỉnh hơn:

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

Một lưu ý phụ:

Trong trường hợp của tôi, bối cảnh để đặt ràng buộc là lặp lại qua các cột của DataGrid. Trước khi có thể thay đổi ràng buộc, cần thiết phải truyền lớp cơ sở DataGridColumn thành DataGridTextColumn. có thể thay đổi ràng buộc:

int pos = 0; 
var dgtc = dataGrid.Columns[pos] as DataGridTextColumn; 
dgtc.Binding = new System.Windows.Data.Binding("FirstName"); 
Các vấn đề liên quan