WPF DataGrid生成名称不正确的列

beq87vna  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(112)

任务很简单--使用老的好的ADO.NET工具用DB表的内容填充WPF Datagrid控件。DataGrid的AutoGenerateColumns属性设置为True,因此我不在XAML中指定Columns集合。一切正常,但有一个小问题- DataGRid列标题错误地显示了表列的名称。例如,所有列都使用类似“Prefix_Word1_Word2_Word3”的约定命名。相反,DataGrid中的列名忽略了第一个下划线符号,所以我可以看到类似“PrefixWord1_Word2_Word3”的smth。对于多个DB中具有相同命名约定的多个表,将出现此行为。
你觉得谁该为此负责?
添加
x1c 0d1x的数据
在这种情况下,TPA是前缀。而不是TPAID,我应该看到TPA_ID等等。

piah890a

piah890a1#

WPF使用下划线字符而不是&字符(如WinForms)作为访问的前缀(也称为快捷键或助记符)键入其元素(如Label和Button)的文本。
可以使用两个下划线对下划线进行转义。
下划线取代了&号,因为在XAML中,&号很容易导致错误并导致问题。

*方案一

只需编写一个类似这样的事件处理程序,以临时转义datagrid标头中的下划线。

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

相关问题