我试图在DataGridView中使用我自己的标题文本,它是从数据库自动填充的。我试过了
dataGridView1.AutoGenerateColumns = false
void createSearchResultHeader()
{
foreach(var prop in typeof(DB.Message).GetProperties())
{
var display =
typeof(DB.Message)
.GetProperty(prop.Name)
.GetCustomAttributes(typeof(System.ComponentModel.DisplayNameAttribute), inherit: false)
.FirstOrDefault() as System.ComponentModel.DisplayNameAttribute;
DataGridViewColumn col = new DataGridViewTextBoxColumn();
col.HeaderText = display.DisplayName;
dataGridView1.Columns.Add(col);
}
}
然后加载结果:
using (var conn = createConnection())
using (var da = new SQLiteDataAdapter(createCommand(conn)))
using (var dt = new DataSet())
{
dt.Locale = System.Globalization.CultureInfo.InvariantCulture;
da.Fill(dt);
dg.DataSource = dt.Tables[0].DefaultView;
}
问题是
dataGridView1.AutoGenerateColumns=假
列被创建(我调用
createSearchResultHeader()
dataGridView1.AutoGenerateColumns = true
来自数据库的结果已成功加载,但它添加了自己的列,而不是使用
createSearchResultHeader()
. 我该怎么修?