Как отформатировать столбец DataGrid в коде, используя привязку - PullRequest
1 голос
/ 26 июля 2011

Я не могу понять, как добавить параметр формата в следующий столбец 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концепция, чтобы держать вопрос чище)

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

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

        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;
    }
0 голосов
/ 26 июля 2011

Вы должны быть в состоянии сделать: newBinding.ConverterParameter = "formatString";

...