当数据源为列表时,如何使DataGridView在WinForms中可编辑

当数据源为列表时,如何使DataGridView在WinForms中可编辑,winforms,entity-framework,datagridview,Winforms,Entity Framework,Datagridview,我可以执行以下操作,但它会将我的DataGridView创建为只读 var entries = (from e in dbContext.Entries where e.FromWord == "test" select new { EntryID = e.EntryID, WordClass = e.WordClass, Plural = e.Plural, FromWord = e.FromWord, LettersOnly = e.Letter

我可以执行以下操作,但它会将我的DataGridView创建为只读

var entries = (from e in dbContext.Entries
 where e.FromWord == "test"
  select new {
    EntryID = e.EntryID,
    WordClass = e.WordClass,
    Plural = e.Plural,
    FromWord = e.FromWord,
    LettersOnly = e.LettersOnly,
    Notes = e.notes
  }
).ToList();
dataGridView1.DataSource = entries; 
如何使DataGridView可编辑


如果我删除ToList,我会得到一个错误,说我必须使用数据集作为数据源。是否有一种简单的方法来创建数据集。我首先将实体框架与数据库一起使用。

@在上面的评论中,没有人通过此链接帮助我回答我的问题

我创建了这个模型类:

  public class RowEntry
  {
    public int EntryID {get; set;}
    public string WordClass {get; set;}
    public bool Plural {get; set;}
    public string FromWord {get; set;}
    public string LettersOnly {get; set;}
    public string Notes { get; set; }
  }
然后简单地将linq查询更改为-删除匿名类:

List<RowEntry> entries = (from e in dbContext.Entries
     where e.FromWord == "test"
      select new RowEntry {
        EntryID = e.EntryID,
        WordClass = e.WordClass,
        Plural = e.Plural,
        FromWord = e.FromWord,
        LettersOnly = e.LettersOnly,
        Notes = e.notes
      }
    ).ToList();
dataGridView1.DataSource = entries;
DataGridView现在是可编辑的。我猜匿名列表类型的范围太有限,DataGridView类无法编辑。

检查