Сложная привязка данных к тексту заголовка DataGridView - PullRequest
0 голосов
/ 21 января 2009

Есть ли способ сложного связывания данных с текстом заголовка столбца? Или это единственный способ вручную установить значения и прослушивать события изменения из источника?

Для справки, я попробовал оба

MyDataGrid.DataBindings.Add("Columns[<columnIndex>].HeaderText",MySource,"MyProperty");

и

MyDataGrid.DataBindings.Add("Columns[\"ColumnName\"].HeaderText",MySource,"MyProperty");

безрезультатно, и ни DataGridViewColumn, ни DataGridViewColumnHeaderCell не имеют свойства DataBindings.

1 Ответ

1 голос
/ 21 января 2009

Нет, заголовки столбцов не поддерживают привязку данных, поскольку понятно, что эти метаданные будут (в основном) статическими.

В этом случае я бы просто сделал это вручную, как вы предлагаете (чтение из свойства и подписка на событие для обновления заголовка столбца).

Для более сложных требований (только для полноты) вы можете получить больший контроль, если напишите собственную реализацию PropertyDescriptor, представленную TypeDescriptionProvider или ITypedList - или даже лучше, реализацией IBindingList, где поднять ListChanged события типа ListChangedType.PropertyDescriptorChanged; однако любой из них - это значительный объем работы, и он просто не стоит того, что вы предлагаете.

...