Список привязок Devexpress не обновляет GridControl - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть форма Windows с Devexpress GridControl, чей источник данных связан с FleetPreference.ManufacturerList, где ManufacturerList - это BindingList<ManufacturerItem>, а FleetPreference - это публичное свойство в форме.

т.е.

public class FleetPreference : FleetPreferenceBase
{
    ////
    ////
    ////
}

public class FleetPreferenceBase
{
    public BindingList<ManufacturerItem> ManufacturerList { get; set; }
}

public class Form1
{
    public FleetPreference FleetPreference { get; set; }
    public BindingList<ManufacturerItem> ManufacturerList { get; set; }

    public Form1() 
    {
        this.gridControl1.DataSource = 
             FleetPreference.ManufacturerList; // doesn't auto-update grid

        this.gridControl1.DataSource = 
             ManufacturerList; // does auto-update grid

    }
}

При добавлении нового элемента в коллекцию путем вызова FleetPreference.ManufacturerList.AddNew() это добавляет новый элемент в исходный список, но источник данных GridControl не обновляется.

После некоторой проверки, когда я добавляю в форму новое свойство BindingList<ManufacturerItem> и привязываю элемент управления к этому свойству, автообновление работает, как и ожидалось.

Есть ли причина, по которой использование вложенного свойства не будет работать должным образом с автоматическим предоставлением событий обновления обратно в GridControl?

1 Ответ

0 голосов
/ 28 ноября 2018

вы можете использовать PopulateColumns() для отображения сетки после установки источника данных.

public Form1() 
{
    this.gridControl1.DataSource = 
         FleetPreference.ManufacturerList; // doesn't auto-update grid
    gridView1.PopulateColumns();

}
...