Выбор строки таблицы данных при нажатии кнопки в WPF - PullRequest
0 голосов
/ 29 января 2012

У меня есть Datagrid, который заполняется значениями из DataTable.В моей программе у меня есть четыре кнопки: «Перейти к первой», «Последняя», «Следующая» и «Предыдущая», так как имя указывает на то, что я должен выбрать строки на основе выбора, сделанного с помощью этих кнопок.Все выглядит хорошо, если я использую приведенный ниже код, чтобы получить строку (например, первую строку).

DataGridRow row =(DataGridRow)userControl.m_DataGrid.ItemContainerGenerator.ContainerFromIndex(0);
row.IsSelected = true;

Но код выдает нулевое значение, когда строк больше, чем высота таблицы данных (когда появляется полоса прокрутки)в картину).

Пожалуйста, помогите мне выйти из этого вопроса.Я думаю, что это из-за проблемы с просмотром.

1 Ответ

0 голосов
/ 29 января 2012

Благодаря виртуализации контейнеры создаются только при просмотре объекта, поэтому вы можете сначала прокрутить элемент в поле зрения, используя соответствующий метод , дождаться создания контейнера и затем выбрать его.

Поскольку это довольно грязно, я бы предложил связать IsSelected со свойством вашего элемента, используя стиль для DataGridRow (установите его как ItemContainerStyle).Затем вы можете просто установить для свойства значение true и прокрутить элемент, если необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...