2010-02-25 24 views
0

好的編輯列表屬性,我有我的自定義類:使用的DataGridView

public class FileItem : INotifyPropertyChanged 
    { 
     int id=0; 
     string value=""; 
     public int Id 
     { 
      get { return id; } 
      set { id = value; Changed("Id"); } 
     } 
     public string Value 
     { 
      get { return value; } 
      set { this.value = value; Changed("Value"); } 
     } 


     public event PropertyChangedEventHandler PropertyChanged; 
     void Changed(string name) 
     { 
      if (PropertyChanged != null) 
       PropertyChanged(this, new PropertyChangedEventArgs(name)); 
     } 
    } 

public BindingList<FileItem> FilesystemEntries = new BindingList<FileItem>(); 

而且我有DatagridView1與數據源設置爲FilesystemEntries:

binding.DataSource = FilesystemEntries; 

已經我可以添加和刪除行 - 這些chnages反映在收藏上。 但是,當我在DataGridView中更改它們時,Value和Id未保存到投標列表中,id始終爲0,值爲「」。

我該如何做這項工作? 我是否需要實現一些FileItem接口來允許編輯屬性?

DGO的ReadOnly設置爲false,與所有列相同。編輯,刪除和更改已啓用。

+0

您的示例代碼適用於我。也許扎克的建議是這個問題。還是有沒有告訴我們的東西?你是直接綁定還是使用綁定來源(我的綁定是直接的) – 2010-02-25 22:13:29

回答

0

問題解決了,它不工作,因爲我將AutoGenerateColumns設置爲false,並且我添加了兩列,其中我忘記了設置DataSource屬性。現在它的工作。

0

您是否已經單擊編輯單元以讓DataGridView知道您正在編輯單元格?默認情況下,單元的值不會被推到底層對象上,直到你點擊它爲止。