wpf - WPF DataGrid 生成名称不正确的列
问题描述
任务很简单 - 使用旧的良好 ADO.NET 工具使用 DB 表的内容填充 WPF Datagrid 控件。DataGrid 的 AutoGenerateColumns 属性设置为 True,因此我没有在 XAML 中指定 Columns 集合。一切正常,但有一个障碍 - DataGRid 列标题错误地显示表列的名称。例如,所有列都使用“Prefix_Word1_Word2_Word3”之类的约定命名。取而代之的是,DataGrid 中的列名忽略了第一个下划线符号,因此我可以看到像“PrefixWord1_Word2_Word3”这样的东西。对于跨多个 DB 具有相同命名约定的多个表,此行为会出现。
关于谁对此负责的任何建议?
TPA 是一个前缀就是这种情况。而不是 TPAID 我应该看到 TPA_ID 等等。
解决方案
WPF 使用下划线字符而不是 & 字符(与 WinForms 一样)在其元素(如标签和按钮)的文本中为访问键(也称为加速键或助记符)添加前缀。
您可以使用两个下划线来转义下划线。
下划线替换了 & 号,因为在 XAML 中,& 号很容易导致错误并导致问题。
- 解决方案 1
只需编写一个像这样的事件处理程序来临时转义数据网格标题中的下划线。
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("_", "__");
}
您可以在下一个链接中找到有关此问题的更多帮助: How to: Customize Auto-Generated Columns in the DataGrid Control
推荐阅读
- java - 打开二级缓存时Hazelcast node.js客户端错误
- python - 在 Marshmallow,Python [PUT] 请求中将值更改为 null
- android - 权限是否相关?
- excel - 导出的 .bas 模块有一个属性是什么意思?
- db2 - 如何在集成总线中模拟错误 [IBM] [CLI Driver] [DB2/AIX64] SQL0911N?
- instagram - 有没有通过 API 获得 Instagram 亮点?
- sql - SQL Query: 选择一个查询加入 3 个带有 case 条件的表
- r - dplyr 中 group_by 和 select 的组合
- cassandra - Cassandra CQL - 将 system.local 表中的 release_version 列转换为 int
- c++ - GetModuleHandle 找不到模块