2010-07-07 116 views
1

我将数据表绑定到datagridview数据源。现在问题是我的datagridview中的列无法自定义。有谁知道如何做到这一点?看来这些列是从数据源动态创建的。我需要自定义字体,颜色列名等...任何想法?将datagridview数据源绑定到数据表

回答

3

如果您在C#(?)中执行此操作,则可以将datagridview AutoGenerateColumns属性设置为false并自行动态添加它们。这将允许您自定义它们。

datagridview列的DataPropertyName设置为您希望显示的数据表中列的名称。

例如:

// Create new combo box column. 
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn(); 

// Set properties. 
column.DataPropertyName = colName; 
column.Name = colName; 
column.HeaderText = colName; 
column.DropDownWidth = 160; 
column.Width = 90; 
column.MaxDropDownItems = 5; 
column.FlatStyle = FlatStyle.Standard; 

datagridview.Columns.Add(column); 

然后你只需将它绑定到数据表。

+0

我将AutoGenerateColumns设置为false后,如何链接列? – gd2 2010-07-07 15:22:44

+0

如果这个答案是有用的,你可以给它一个投票或标记为答案。谢谢 – w69rdy 2010-07-07 16:08:55

+0

嗨 - 感谢您的更新。我不明白的部分是如何绑定定义到动态数据表的列。你能提供绑定的代码示例吗?谢谢greg – gd2 2010-07-07 22:02:28

1

您应该能够自动生成列并仍然对其进行自定义。

例如,要改变列的字体,你可以这样做:

dataGridView.Columns["ColumnName"].DefaultCellStyle.Font = new Font("Tahoma, 15); 

要更改列名的颜色:

dataGridView.Columns["ColumnName"].HeaderCell.Style.BackColor = Color.Blue; 

我在自动尝试这两种生成的DataGridView绑定到一个DataTable,它适用于我。

0

改为使用注释。示例:

internal class FailedItem 
{ 
    ... 
    [DisplayName("Clarify reason")] 
    public string Reason 
    { get; private set; } 
    ... 
}