името на колоната с таблица с данни на wpf не може да има наклонена черта /

Аз съм много нов в WPF. Имам много странен проблем просто да направя таблица, ето кода, който имам:

DataTable table = new DataTable();
table.Columns.Add("request/sec", typeof(string));
DataRow newRow = dataTable.NewRow();
newRow["request/sec", "na");

но показва само име на колона с "заявка/сек" и празен ред

обаче, ако го направя:

DataTable table = new DataTable();
table.Columns.Add("test(request/sec)", typeof(string));
DataRow newRow = dataTable.NewRow();
newRow["test(request/sec)", "na");

след това работи, показва името на колоната правилно и ред със стойност "na"

Нямам идея защо се случва това, знам, че звучи нелепо. Може ли някой да помогне?

забележка: Опитах също "//", "/", "\/", @ Не мога да кодирам имената на колоните, това е динамично генерирано от определена логика, използвах горния код като примери


person airok    schedule 23.10.2014    source източник
comment
Искате ли мрежата да генерира колоните, или вие сами ги указвате? Ако го правите сами, покажете ни как го правите. Също така, какво е ItemsSource на мрежата?   -  person Mike Strobel    schedule 24.10.2014
comment
имената на колоните се генерират. :(   -  person airok    schedule 24.10.2014


Отговори (2)


Данните не се показват при свързване на ItemsSource на WPF DataGrid към DataTable, който съдържа колони като ' 14.01.10' – Форумът на MS WPF обсъжда този проблем.

Накратко, това се твърди, че е грешка в WPF Toolkit от 22 март 2010 г. и се отнася до билети, съобщаващи за подобни проблеми с някои други герои.

person ivan_pozdeev    schedule 23.10.2014

Има проблеми при създаването на обвързвания, когато име на свойство съдържа някои запазени знаци като . и /. Анализаторът на пътя на свойствата просто не ги обработва. Имате няколко опции:

  1. Вместо мрежата да генерира автоматично колоните, дефинирайте ги сами, а за колони със запазени знаци се свържете с индексатора на реда с данни вместо името на колоната:

    <DataGridTextColumn Binding="{Binding Path=[request/sec]}" Header="request/sec" />
    
  2. Ако ви интересува само името на колоната, защото искате да контролирате текста на заглавката на колоната, просто декларирайте колоните ръчно, дайте на колоната „законно“ име и задайте Header точно както по-горе.

person Mike Strobel    schedule 23.10.2014
comment
Трябва да генерирам името на колоната... не винаги е едно и също. T_T - person airok; 24.10.2014
comment
Можете ли да премахнете незаконните знаци от името на колоната, но да ги запазите в заглавката на колоната? Ще изглежда по същия начин за потребителя. Все още можете да генерирате колоните, но можете да го направите сами, вместо да разчитате на мрежата. - person Mike Strobel; 24.10.2014
comment
Как да премахна незаконните знаци от името на колоната, но да ги запазя в заглавката на колоната? - person airok; 25.10.2014
comment
Генерирайте колоните ръчно и присвоете правилната заглавка на свойството Header. - person Mike Strobel; 27.10.2014
comment
Това е колона DataGrid, а не DataColumn :-( - person imma; 25.07.2019