SubSonic 3. Получите результаты в виде DataTable - PullRequest
0 голосов
/ 25 января 2010

Как получить результат метода .All () в виде таблицы данных?

В настоящее время возвращается IQueryable, который нельзя использовать в качестве источника данных для WinForms DataGridView.

dataGridView1.DataSource = Product.All (); // не работает

Ответы [ 3 ]

1 голос
/ 25 января 2010

Вы можете привязать List к элементу управления DataGridView, поэтому просто используйте метод ToList () в IQueryable, например:

MyDataGridView.DataSource = MyObject.All().ToList();
0 голосов
/ 26 января 2010

Для двухстороннего связывания можно использовать BindingList

dataGridView1.DataSource = new BindingList<Product>(Product.All().ToList());

BindingList будет обновляться автоматически при добавлении / удалении строк из DataGridView, а DataGridView будет обновляться автоматически при добавлении элементов в список привязок.

Если вы хотите автоматически обновлять DataGridView при изменении продукта, продукт должен реализовать INotifyPropertyChaged

0 голосов
/ 25 января 2010

Если в вашем классе Product не реализовано одно из следующих: IList, IListSource, IBindingList, IBindingListView; вы не сможете привязать результат к вашему DataGridView.

...