Вопрос

Я не могу понять, как добавить параметр формата в следующий столбец DataGrid. Мне нужно показать номер с двумя десятичными очками.

У меня есть DataGrid Silverlight, который я добавляю столбцы динамически. Я создаю столбец и применяю динамическую привязку (что, как я знаю, работает)

    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, чтобы сохранить чище вопроса)

Это было полезно?

Решение

Я ненавижу отвечать на свой собственный вопрос, и я думаю, что я вводил в заблуждение в том, как я добавил потенциальное решение, используя конвертер ценностей в мой первоначальный вопрос - очень извините за это. Решение оказалось простым. Вы передаете строку формата вместе с привязкой.

        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