Почему ItemContainerGenerator.ContainerFromIndex() возвращает null и как этого избежать?

Я использую этот фрагмент для анализа строк, выбранных в сетке данных.

for (int i = 0; i < dgDetalle.Items.Count; i++)
{
    DataGridRow row = (DataGridRow)dgDetalle.ItemContainerGenerator.ContainerFromIndex(i);
    FrameworkElement cellContent = dgDetalle.Columns[0].GetCellContent(row);
    // ... code ...
}

Цикл проходит гладко, но при обработке некоторых индексов вторая строка выдает нулевое исключение. В документации MSDN говорится, что ItemContainerGenerator.ContainerFromIndex(i)вернет null, если «если элемент не реализован», но это не помогает мне понять, как я могу получить желаемое значение.

Как просканировать все строки? Есть ли другой способ?

ОБНОВЛЕНИЕ

Я использую этот фрагмент для чтения CheckBox, как описано здесь. Так что я вообще не могу использовать привязку или ItemSource, если только я не изменю много вещей. И я не могу. Я занимаюсь обслуживанием кода.

15
задан Community 23 May 2017 в 12:25
поделиться