C # Devexpress: приведение выбранной строки к пользовательскому объекту. - PullRequest
0 голосов
/ 08 мая 2018

В моей сетке есть список строк, поступающих из базы данных SQL (с оператором SELECT * FROM).

Что я хочу сделать, это позволить пользователю сосредоточиться на строке -> нажать на кнопку и открыть форму с передачей строки (во всем объекте).

Я попытался сделать это, выполнив следующее:

private void btn_Get_Object_Details_Click(object sender, EventArgs e)
{
     Person p = gridView.GetFocusedRow() as Person;
     MessageBox.Show("name: " + person.Name);
}

Однако я получаю исключение nullreference для gridView.GetFocusedRow(), хотя я выбираю строку.

Где моя ошибка?

1 Ответ

0 голосов
/ 08 мая 2018

Согласно документации, возвращаемое значение метода GetFocusedRow зависит от типа источника данных таблицы. Если источником данных является System.Data.DataTable или System.Data.DataView, этот метод возвращает объект System.Data.DataRowView, представляющий сфокусированную строку. Если источником данных является пользовательский список элементов, возвращается соответствующий элемент списка.

Насколько я вижу, вы используете DataTable в качестве источника данных таблицы. Если это так, вам следует либо изменить DataTable на один из источников данных нескольких объектов для DevExpress Grid , либо использовать DataRow в качестве единицы передачи данных при взаимодействии формы.

...