У меня есть 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 "
Это неверное значение PropertyName или я должен связываться с объектом, отличным от DataGridView? (то есть столбец?)
Или проблема в том, что PropertyName не может быть в форме X.Y? Я думал, что видел / использовал этот синтаксис раньше, но, возможно, он работает только для DataMember?
Любая помощь очень ценится