1

次のDataGrid列にformatパラメーターを追加する方法がわかりません。小数点以下2桁で数字を表示する必要があります。

列を動的に追加しているSilverlightDataGridがあります。列を作成し、動的バインディングを適用します(これは機能することがわかっています)

    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;
    }

次に、値をフォーマットする必要があります。この場合、表示されているのはfloat値です。バインディングにフォーマットを適用するにはどうすればよいですか?この時点で必要なのは、表示する数値と小数点以下2桁だけですが、少し柔軟にして、可変数の小数点を表示させたいと思います。

(編集:質問をよりクリーンに保つために文字列IValueConverterの概念を削除しました)

4

2 に答える 2

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;
    }
于 2011-07-26T15:03:52.663 に答える
0

次のことができるはずです。newBinding.ConverterParameter = "formatString";

于 2011-07-26T04:55:58.317 に答える