Редактирование свойств списка с использованием DataGridview - PullRequest
0 голосов
/ 26 февраля 2010

Хорошо, у меня есть свой класс:

    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, идентификатор всегда равен 0, а значение равно "".

Как я могу заставить эту работу? Нужно ли реализовать какой-либо интерфейс для FileItem, чтобы разрешить редактирование свойств?

ReadOnly для DGV имеет значение false, то же самое для всех столбцов. Редактирование, удаление и изменение включены.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2010

Проблема решена, она не работала, потому что я установил AutoGenerateColumns в значение false и добавил два столбца, в которых я забыл установить свойство DataSource. Теперь это работает.

0 голосов
/ 26 февраля 2010

Вы щелкнули от ячейки редактирования, чтобы сообщить DataGridView, что вы закончили редактирование ячейки? По умолчанию значение ячейки не будет передано базовому объекту, пока вы не щелкнете по нему.

...