Привязка к полям, содержащим точку в DataTable в C # / WPF - PullRequest
2 голосов
/ 24 января 2012

У меня есть база данных SQL CE, которая находится вне моего контроля, у которой есть поля в формате., Заполненные точкой в ​​имени столбца.Столбцы всегда будут разными, поэтому я не могу иметь строгое поле данных.Мне было поручено отображать данные динамической таблицы в DataGrid.

Обычно это было бы легко - автоматически генерировать столбцы, и все круто.Простой пример.

Однако мне не разрешено это делать, поскольку '.'символ в именах столбцов обнуляет привязку.

Сейчас я пытаюсь добавить слой перевода в набор данных (вероятно, придется поддерживать словарь с переводами от. до _).

Мой вопрос - Есть ли лучший способ ?Недавно я вспомнил кое-что о возможности иметь SourceColumnName в DataTable, но я его не видел.Там есть «Подпись», но я не могу связать это ...

Есть мысли?

1 Ответ

3 голосов
/ 01 мая 2012

В качестве альтернативы заменить . dot на \u2024

Если вы зададите этот вопрос сотрудникам Microsoft, они скажут вам, что это (ваша проблема) происходит из-за того, что WPF DataGrid поддерживает «отображение данных подчиненных свойств» при наличии источника данных. По этой причине . dot пытается преобразовать в подобъект, содержащийся в вашей DataTable.

В следующей строке они вежливо попросят вас заменить . dot на _ Underscore в имени столбца.

(http://social.msdn.microsoft.com/Forums/en/wpf/thread/7d84c8f2-2709-4642-a259-739036ffd2a6)

Но это не решение и не альтернатива.

Решение будет предоставлено только путем изменения их кодировки.

Для альтернативной замены. с \u2024 Это символ Unicode для C / C ++ / Java

Подробнее об этом здесь

...