1

我無法弄清楚如何將format參數添加到以下DataGrid列。我需要用兩位小數顯示數字。如何使用綁定在代碼中格式化DataGrid列

我有一個Silverlight DataGrid,我要動態添加列。我創建了列並應用動態綁定(我知道這有效)

public static DataGridTextColumn CreateFloatColumn(int index, string fieldName, string header, string description) 
    { 
     DataGridTextColumn column = new DataGridTextColumn(); 
     column.Header = header; 
     column.HeaderStyle = BuildColumnHeaderStyle(description); 
     Binding newBinding = new Binding("floatValuesList[" + index + "]"); 
     column.Binding = newBinding; 
     column.CellStyle = BuildCellStyle(fieldName, description); 
     return column; 
    } 

現在我還需要格式化該值。在這種情況下,它顯示的是一個浮點值。如何將格式應用於綁定?在這一點上,我只想要顯示的數字和兩個小數點,但我希望它有點靈活,並讓我顯示可變的小數點數。

(編輯:刪除字符串的IValueConverter概念保持問題吸塵器)

回答

2

我不想回答我的問題,我想我是在怎樣的誤導我使用價值轉換器添加一個潛在的解決方案到我原來的問題 - 很抱歉。解決方案結果很簡單。您將格式字符串與綁定一起傳遞。

 column.Binding.StringFormat = "0.00"; 

以下是完整的解決方案

public static DataGridTextColumn CreateFloatColumn(int index, string fieldName, string header, string description) 
    { 
     DataGridTextColumn column = new DataGridTextColumn(); 
     column.Header = header; 
     column.HeaderStyle = BuildColumnHeaderStyle(description); 
     column.Binding = new Binding("floatValuesList[" + index + "]"); 
     column.Binding.StringFormat = "0.00"; 
     column.CellStyle = BuildFloatCellStyle(fieldName, description); 
     return column; 
    } 
0

你應該能夠做到:newBinding.ConverterParameter = "formatString";

+0

希望我能刪除評論。簡單的答案是使用綁定stringFormat來指定要顯示的小數位數。完全不需要使用valueConverter。謝謝你的幫助。 –

+0

你可以刪除評論,將鼠標懸停在評論上,你會在評論結尾處看到一個x :-)很酷,很高興你來對了,我建議你看看任何情況下的值轉換器,他們讓生活變得更加容易:-) –