WPF DataGrid 生成名称不正确的列
WPF DataGrid generates columns with incorrect names
任务很简单 - 使用旧的好 ADO.NET 工具用 DB table 的内容填充 WPF Datagrid 控件。 DataGrid 将 AutoGenerateColumns 属性 设置为 True,因此我没有在 XAML 中指定列 collection。
一切正常,但有一个问题 - DataGRid 列 header 错误地显示了 table 列的名称。例如,所有的列都按照“Prefix_Word1_Word2_Word3”这样的约定命名。取而代之的是,DataGrid 中的列名忽略了第一个下划线符号,因此我可以看到类似“PrefixWord1_Word2_Word3”的 smth。
对于跨多个数据库具有相同命名约定的多个 table,会出现此行为。
关于谁对此负责有什么建议吗?
已添加 piece of columns header of DataGrid
在这种情况下,TPA 是一个前缀。
而不是 TPAID 我应该看到 TPA_ID 等等。
WPF 使用下划线字符而不是符号字符(与 WinForms 一样)在其元素(如 Label 和 Button)的文本中为访问(a.k.a。加速器或助记符)键添加前缀。
您可以使用两个下划线来转义下划线。
下划线替换了 & 符号,因为在 XAML 中,& 符号很容易导致错误和问题。
- 解决方案 1
只需编写这样的事件处理程序即可暂时转义数据网格中的下划线 header。
private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
string header = e.Column.Header.ToString();
// Replace all underscores with two underscores, to prevent AccessKey handling
e.Column.Header = header.Replace("_", "__");
}
您可以在下一个 link 中找到有关此问题的更多帮助:
How to: Customize Auto-Generated Columns in the DataGrid Control
任务很简单 - 使用旧的好 ADO.NET 工具用 DB table 的内容填充 WPF Datagrid 控件。 DataGrid 将 AutoGenerateColumns 属性 设置为 True,因此我没有在 XAML 中指定列 collection。 一切正常,但有一个问题 - DataGRid 列 header 错误地显示了 table 列的名称。例如,所有的列都按照“Prefix_Word1_Word2_Word3”这样的约定命名。取而代之的是,DataGrid 中的列名忽略了第一个下划线符号,因此我可以看到类似“PrefixWord1_Word2_Word3”的 smth。 对于跨多个数据库具有相同命名约定的多个 table,会出现此行为。
关于谁对此负责有什么建议吗?
已添加 piece of columns header of DataGrid
在这种情况下,TPA 是一个前缀。 而不是 TPAID 我应该看到 TPA_ID 等等。
WPF 使用下划线字符而不是符号字符(与 WinForms 一样)在其元素(如 Label 和 Button)的文本中为访问(a.k.a。加速器或助记符)键添加前缀。
您可以使用两个下划线来转义下划线。
下划线替换了 & 符号,因为在 XAML 中,& 符号很容易导致错误和问题。
- 解决方案 1
只需编写这样的事件处理程序即可暂时转义数据网格中的下划线 header。
private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
string header = e.Column.Header.ToString();
// Replace all underscores with two underscores, to prevent AccessKey handling
e.Column.Header = header.Replace("_", "__");
}
您可以在下一个 link 中找到有关此问题的更多帮助: How to: Customize Auto-Generated Columns in the DataGrid Control