Я хочу передать значение и индекс столбца методу, который будет программно выбирать строки в элементе управления DataGrid, которые соответствуют значению в данном столбце.
Мой код выглядит так:
private void HighlightSelections(string selection, int colIndex)
{
mtoDG.UnselectAll();
for(int i = 0; i < mtoDG.Items.Count; i++)
{
DataGridRow row = mtoDG.ItemContainerGenerator.ContainerFromIndex(i) as DataGridRow;
if (mtoDG.Columns[colIndex].GetCellContent(row) is TextBlock cellContent && cellContent.Text.Equals(selection))
{
object item = mtoDG.Items[i];
mtoDG.SelectedItems.Add(item);
}
}
}
Я обнаружил, что этот метод работает, только если вся сетка данных отображается на экране.Если из-за нехватки места есть какие-либо строки, которые не отображаются, то это приведет к ошибке nullexception.
Так что мой вопрос: есть ли что-нибудь, что я могу изменить в своем коде, чтобы он работал, даже если на дисплее есть невидимые строкиобласть