Как получить доступ к значениям ячеек вычисляемых столбцов в RadGridView

Есть ли способ получить значения для вычисляемых столбцов в RadGridView?

В моем коде есть часть, в которой я повторял все элементы, отображаемые в RadGridView. Значения для вычисляемых столбцов отсутствуют. Интересно, как я могу получить их.

Прямо сейчас я повторяю набор элементов, к которым привязана сетка. Я использую GridViewExpressionColumn, чтобы добавить эти вычисляемые столбцы в сетку.

РЕДАКТИРОВАТЬ:

   GridViewColumn column = new GridViewExpressionColumn
                    {
                        UniqueName = columnViewModel.LayoutColumnId.ToString(),
                        Name = name,
                        Expression = expression,
                        IsReadOnly = isReadOnly,
                        ToolTipTemplate = CreateTooltip(columnViewModel.FormulaText),
                        IsSortable = false,
                        IsFilterable = false
                    };

    grid.Columns.Add(column)

person Carlos Blanco    schedule 05.04.2012    source источник


Ответы (1)


Во-первых, убедитесь, что каждому столбцу присвоено уникальное имя.

Затем при повторении через каждый из элементов сетки вы можете получить доступ к тексту, используя код: (ДЛЯ ASP.NET AJAX)

foreach (GridDataItem DataItem in grid1.Items)
{
    var CalculatedColumnText = DataItem["CalculatedColumn"].Text;
}

(ДЛЯ WPF/SILVERLIGHT) — с форумов Telerik

        var col = GridView1.Columns["CalculatedColumn"] as GridViewExpressionColumn;
        foreach (var GridItem in GridView1.Items)
        {                
            var cellValue = col.GetValueForItem(GridItem);

        }

Вы можете преобразовать текст в любой тип данных, который вам нужен.

Изменить: сначала я предположил, что это ASP.NET, а не WPF/Silverlight. Я оставил оба ответа.

person KRichardson    schedule 05.04.2012
comment
Это не работает для меня. Может так делается привязка? - person Carlos Blanco; 06.04.2012
comment
Я объявил свой как: ‹telerik:GridCalculatedColumn UniqueName=CalculatedColumn HeaderText=Amount * ID DataType=System.Double DataFields=AddonServiceID, Amount Expression={0}*{1} /› - используя таблицу из моей существующей базы данных (int, double ) - person KRichardson; 06.04.2012
comment
Мои добавляются кодом после того, как пользователь выбирает добавление нового вычисляемого столбца из раскрывающегося меню. Сетка привязана к коллекции элементов, которые мы получаем из БД. Я пытаюсь item['CalcColName'] вернуть null. item содержит только те члены, которые есть у нашего класса для данных. - person Carlos Blanco; 06.04.2012
comment
Можете ли вы вставить свой код, добавляющий новый вычисляемый столбец? - person KRichardson; 06.04.2012
comment
Я добавил это. Переменные, которые там есть, в основном просто строки. - person Carlos Blanco; 06.04.2012
comment
см. выше правки. Мне удалось получить данные в моем приложении WPF. Вы можете пометить свой вопрос как WPF или Silverlight. - person KRichardson; 06.04.2012