DataGridView与LINQ绑定的问题?

时间:2011-04-07 13:04:30

标签: c# .net winforms linq datagridview

当我将linq查询绑定到datagridview的数据源时,我无法更改gridview中的任何单元格值。列readonly属性自动设置为true,当我尝试将其设置为false时,它会给出以下异常: -

绑定到只读字段的DataGridView列必须将ReadOnly设置为True。 LINQ

这是我的代码

 DataClasses1DataContext db = new DataClasses1DataContext();
 var selectquery = from s in db.Sarees where s.Bill.BillNo == billno select new { s.BillID,s.Price };

我发现这个问题有一个解决方案,如果表中有很多列而我只想选择两个列,那么这个解决方案并不肮脏...... 1解决方案是: -

 var selectquery = db.Sarees.Where(s => s.Bill.BillNo == billno);

当我提供此查询时,它工作正常.. 但是我想要一个解决方案,我只能通过LINQ选择一些列,并且可以在通过datagridview绑定时更改其值...

1 个答案:

答案 0 :(得分:2)

问题是此查询不会返回Sarees的集合,因此无法按您的意愿进行编辑。它返回一组具有BillIDPrice属性的新对象。

DataClasses1DataContext db = new DataClasses1DataContext();
var selectquery = from s in db.Sarees
                  where s.Bill.BillNo == billno 
                  select new { s.BillID, s.Price };

您是否可以使用第二个查询的版本并仅将要修改的列绑定到DataGridView


您可能还需要使用DataGridView.CellFormatting Event进行探索。