0

好的,我有我的自定义课程:

    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 的 DataSource 设置为 FilesystemEntries:

 binding.DataSource = FilesystemEntries;

我已经可以添加和删除行了——这些变化反映在集合上。但是,当我在 DataGridView 中更改 Value 和 Id 时,它们不会保存到投标列表中,id 始终为 0,value 为“”。

我怎样才能使这项工作?我是否需要对 FileItem 实现一些接口以允许编辑属性?

DGV 的 ReadOnly 设置为 false,对所有列都相同。启用编辑、删除和更改。

4

2 回答 2

1

问题解决了,它不起作用,因为我将 AutoGenerateColumns 设置为 false,并且我添加了两列我忘记设置 DataSource 属性。现在它的工作。

于 2010-02-25T22:51:47.117 回答
0

您是否在编辑单元格之外单击以DataGridView告知您已完成单元格的编辑?默认情况下,单元格的值不会被推送到底层对象,直到您点击离开它。

于 2010-02-25T22:07:45.160 回答