2017-08-03 40 views
0

我可以執行以下操作,但它將DataGridView創建爲Readonly。如何使DataGridView在DataSource爲LIst時在WinForms中可編輯<'a>

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()我得到一個錯誤,說我必須使用DataSet作爲數據源。有沒有一種簡單的方法來創建一個DataSet。我在Database-First中使用Entity-Framework。

+1

檢查[此鏈接](https://stackoverflow.com/questions/16808590/editable-datagridview-bound-to-a-list) –

回答

0

@Nobody,在上面的評論,幫助我回答我的問題與此鏈接Editable DataGridView bound to a list

我創造了這個模型類:

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類編輯。

相關問題