1

次のDataGrid列にformatパラメータを追加する方法を理解できません。私は小数点以下2桁で数値を表示する必要があります。バインディングを使用してコード内の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; 
    } 

私はまた値をフォーマットする必要があります。この場合、表示されている浮動小数値です。バインディングに書式設定を適用するにはどうすればよいですか?この時点で私が望むのは数字と小数点2桁ですが、少し柔軟にして、小数点の可変数を表示させたいと思います。

(編集:質問クリーナーを維持するための概念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が表示されます:-)嬉しいことに、あなたはうってつけになりました。値のコンバーターを見てみましょう。 –

関連する問題