如何使用绑定在代码中格式化DataGrid列

时间:2011-07-25 22:56:37

标签: silverlight datagrid binding ivalueconverter datagridtextcolumn

我无法弄清楚如何将format参数添加到以下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 个答案:

答案 0 :(得分: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;
    }

答案 1 :(得分:0)

你应该可以:newBinding.ConverterParameter = "formatString";