У меня есть RadGridView, в котором один из столбцов содержит только кнопки.
В зависимости от значения логической переменной, связанной с определенной записью в сетке, я включаю или отключаю ячейку, содержащую кнопку. Вот как я этого добиваюсь:
foreach (Item item in this.radGridView.Items)
{
row = this.radGridView.ItemContainerGenerator.ContainerFromItem(item) as GridViewRow;
if (row != null)
{
cell = (from c in row.Cells
where c.Column.UniqueName == "buttonCol"
select c).FirstOrDefault();
if (cell != null)
{
if (item.buttonEnabled)
{
cell.IsEnabled = true;
}
else
{
cell.IsEnabled = false;
}
}
}
}
Проблема в том, что моя сетка имеет горизонтальные и вертикальные полосы прокрутки и поскольку я использую виртуализацию строк и столбцов, состояние ячеек, содержащих кнопку, которая не отображается, теряется. Отключение виртуализации не является решением в моем случае, так как в моей сетке много данных.
Интересно, какое событие RadGridView было бы наилучшим для вызова моей функции, которая устанавливает состояние ячеек кнопки при каждом изменении отображаемых значений?