質問

フォーマットパラメーターを次のDatagrid列に追加する方法を理解できません。 2つの小数点で数値を表示する必要があります。

動的に列を追加する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つの小数点だけですが、少し柔軟になり、さまざまな数の小数点を見せてほしいと思います。

(編集:質問をきれいに保つために弦楽装置の概念を削除しました)

役に立ちましたか?

解決

私は自分の質問に答えるのが嫌いであり、元の質問にバリューコンバーターを使用して潜在的なソリューションを追加した方法に誤解を招いていたと思います。ソリューションはシンプルであることが判明しました。バインディングとともにフォーマット文字列を渡します。

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

他のヒント

あなたはできるはずです: newBinding.ConverterParameter = "formatString";

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top