Linq из списка <T>в DataGridView - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть список и dataGridView1, и я пытаюсь сделать это:

var result = from s in sessions
             where s.ID > 0
             select s;
dataGridView1.DataSource = result;

Прекрасно компилируется, ничего не отображается в DataGridView и никаких исключений.

Если я, однако, установлю dataGridView1.DataSource = sessions;, он показывает все.

Ответы [ 3 ]

2 голосов
/ 23 декабря 2011

Do:

var result = from s in sessions
             where s.ID > 0
             select s;
dataGridView1.DataSource = result.ToList();

Фактически из-за отложенное выполнение linq , ваш запрос linq не будет выполнен, пока вы не получите некоторые данные.

Если вы добавитеToList и вы ничего не видите, это означает, что нет результата, и ничего не идет не так, просто проверьте ваш result.ToList() в окне просмотра в режиме отладки, если нет никакого результата, все в порядке, но если вы видите, какой-то результат может быть вамиследует обновить dataGridView или перепривязать его.

2 голосов
/ 23 декабря 2011

Я думаю, что это может сработать:

dataGridView1.DataSource = result.AsDataView();
0 голосов
/ 23 декабря 2011

Я только что попробовал сценарий, в котором с использованием dataGridView1.DataSource = result.ToList (); работает, но использование результата напрямую не работает. Кажется, что DataGridView не предназначен для непосредственной привязки к IEnumerable (результат оператора Linq).

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