【发布时间】:2009-04-23 12:54:02
【问题描述】:
我有一个使用数据绑定的 DataGridView,带有手动创建的列,这很好用。
但是,我也希望行的 BackColor 也是数据绑定的,但到目前为止,我的尝试都遇到了错误。
这是我最近的尝试:
dataGridFileTransfer.RowHeadersVisible = false;
dataGridFileTransfer.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridFileTransfer.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridFileTransfer.MultiSelect = false;
dataGridFileTransfer.ReadOnly = true;
var files = GetReceivedFiles(false).Union(FileDetails.Select(FileStatus.FailedVerification)).ToList();
dataGridFileTransfer.AutoGenerateColumns = false;
string[] displayHeaders = new string[] { COL_NAME, COL_TYPE, COL_CREATED, COL_SIZE, COL_STATUS };
string[] displayProps = new string[] { "Filename", "FileTypeDisplayName", "Created", "Size", "FileStatus" };
for (int i = 0; i < displayHeaders.Length; i++)
{
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
col.HeaderText = displayHeaders[i];
col.DataPropertyName = displayProps[i];
if (displayHeaders[i] == COL_CREATED)
col.DefaultCellStyle.Format = Constants.DDMMYYYHHMMSS;
dataGridFileTransfer.Columns.Add(col);
}
Binding bi = new Binding("DefaultCellStyle.BackColor", files, "DisplayColor");
dataGridFileTransfer.DataBindings.Add(bi);
dataGridFileTransfer.DataSource = files;
正在生成 ArguementException:
"无法绑定到属性 上的“DefaultCellStyle.BackColor” 目标控制。参数名称: 属性名"
是 PropertyName 的值错误,还是应该绑定到 DataGridView 以外的对象? (即一列?) 还是 PropertyName 不能是 X.Y 形式的问题?我以为我以前见过/使用过这种语法,但也许它只适用于 DataMember?
非常感谢任何帮助
【问题讨论】:
标签: c# winforms data-binding datagridview