2012-01-23 21 views
2

我有一個SQL CE數據庫,這是我無法控制的,它具有格式爲。的字段,並在列名稱中包含句點。列總是不同的,所以我不能有一個強類型的數據字段。我一直負責將動態表格數據顯示到DataGrid中。在C#/ WPF中綁定到包含DataTable中的句點的字段

通常情況下,這很容易 - 自動生成列,一切都很酷。簡單的例子。

但是,我不能這樣做,因爲'。'列名中的字符對該綁定進行覈准。

現在,我試圖給數據集添加一層翻譯(可能需要維護一個翻譯爲_的字典)。

我的問題是 - 有沒有更好的辦法?我回想起能夠在DataTable中擁有SourceColumnName的一段時間,但我沒有看到它。有一個「標題」,但我不能綁定到...

任何想法?

+0

你可以在此改變自動生成。 – Paparazzi

+0

您應該提供一些關於您的「動態表格數據」的其他信息。你實際使用什麼數據結構?是的,正如BalamBalam提到你可以重寫'OnAutoGeneratingColumn'。 – doblak

+0

數據將作爲原始** DataTable **返回。雖然你的方法都可以工作,但它仍然無法解決手頭的問題 - 列名包含'。'的問題。 – Locke

回答

3

對於替代與\u2024

取代. dot如果你把這個問題給微軟的人,他們會告訴你,這(你的問題)是因爲WPF的DataGrid支持「子屬性的數據映射」時,有一個數據源。由於這個原因,. dot會嘗試解析包含在DataTable中的子對象。

在下一行中,他們會禮貌地要求您將列名中的. dot替換爲_ Underscore

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

但是,這既不是一個解決方案,也不是替代品。

解決方案只能由他們通過更改編碼來提供。

替代替換。與\u2024這是unicode character for C/C++/Java

More on this here

+0

謝謝你的解決方案,但我想你會遇到一個問題,當你想在單元格編輯後按下輸入時更新單元格中的值... at System.Windows.Data.BindingGroup.UpdateValues() at System.Windows .Data.BindingGroup.UpdateAndValidate(ValidationStep validationStep) 你有處理這個嗎? – stenly

相關問題