Pregunta

No puedo entender cómo agregar el parámetro de formato a la siguiente columna DataGrid. Necesito mostrar el número con dos puntos decimales.

Tengo una datagrid de Silverlight que estoy agregando columnas a dinámicamente. Creo la columna y aplico un enlace dinámico (que sé que funciona)

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

Ahora también necesito formatear el valor. En este caso, se muestra un valor flotante. ¿Cómo aplico el formato a la vinculación? En este punto, todo lo que quiero es el número y dos decimales que mostrar, pero me gustaría que fuera un poco flexible y permítanme mostrar un número variable de puntos decimales.

(Editar: Cadena eliminada ivalueConverter Concept para mantener la pregunta más limpia)

¿Fue útil?

Solución

Odio responder a mi propia pregunta, y creo que estaba engañando cómo agregué una solución potencial usando un convertidor de valor para mi pregunta original, lo siento mucho por eso. La solución resultó ser simple. Pasas la cadena de formato junto con el enlace.

        column.Binding.StringFormat = "0.00";

Aquí está la solución completa

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

Otros consejos

Deberías poder hacer: newBinding.ConverterParameter = "formatString";

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top