0

OK、カスタムクラスがあります:

    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>();

そして、DataSourceがFilesystemEntriesに設定されたDatagridView1があります。

 binding.DataSource = FilesystemEntries;

すでに行を追加および削除できます-これらの変更はコレクションに反映されます。ただし、DataGridViewで値とIDを変更すると、値とIDは入札リストに保存されません。IDは常に0で、値は「」です。

どうすればこれを機能させることができますか?プロパティを編集できるようにするには、FileItemへのインターフェイスを実装する必要がありますか?

DGVのReadOnlyは、すべての列と同じようにfalseに設定されます。編集、削除、変更が有効になります。

4

2 に答える 2

1

問題は解決しました。AutoGenerateColumns を false に設定したため機能しませんでした。DataSource プロパティを設定するのを忘れた 2 つの列を追加しました。今、その作業。

于 2010-02-25T22:51:47.117 に答える
0

セルの編集が完了したことを知らせるために、編集セルから離れてクリックしましたDataGridViewか? デフォルトでは、セルの値は、クリックして元のオブジェクトから離れるまで、下にあるオブジェクトにプッシュされません。

于 2010-02-25T22:07:45.160 に答える