2009-01-21 144 views
0

有没有办法将数据绑定复杂到列的标题文本?或者是手动设置值并从源监听更改事件的唯一方法?复杂的数据绑定到DataGridView标题文本

为了记录在案,我都试过

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

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

无济于事,也不DataGridViewColumnDataGridViewColumnHeaderCellDataBindings财产。

+0

你将DataGridView绑定到了什么地方?如果将它绑定到DataTable,然后更改基础DataTable的列名称,它会自动更新DataGridView上的列。 – BFree 2009-01-21 04:15:18

回答

1

不,列标题不支持数据绑定,因为据了解,此元数据将(大部分)是静态的。

在这种情况下,我会简单地按照您的建议(从属性中读取并订阅一个事件来更新列标题)手动执行此操作。

对于更复杂的要求(仅完整性),如果你写你自己的PropertyDescriptor实施后,无论是TypeDescriptionProviderITypedList暴露可以采取更多的控制 - 或者甚至更好,一个IBindingList实现,其中你提高ListChangedType.PropertyDescriptorChangedListChanged事件;然而,这些中的任何一个都是显着的工作量,并且根本不值得仅仅为了您的建议。