Пустой GridControl после вызова метода Refresh

Я бы хотел заселить DataGridControl Форма использования DataClass dataClass.updateGUI() но через некоторое время в контрольном виде появляется белая пустая страница. Когда я нажимаю на этот пробел, все данные появляются внезапно!

public partial class Form : DevExpress.XtraEditors.XtraUserControl
{

    private void init()
    {
        dataClass.dataClassShow += OnDataClassUpdate;
        loadDataInit();
    }
    public void OnDataClassUpdate(object sender, DataClassEventArgs e)
    {
        Task.Run( () => updateGrid(e._data) );
    }
    public async Task updateGrid(BindingList<DataRow> dataRows)
    {
        lock(this)
        {
            dataGridControl.DataSource = dataRows;
            dataGridControl.Refresh();
        }
        await Task.Delay(4); 
    }

}


public class DataClass
{

    public delegate void DataClassEventHandler(object source, DataClassEventArgs args);
    public event EventHandler<DataClassEventArgs> DataClassShow;
    protected virtual void OnDataClassUpdate(BindingList<DataRow> data)
    {
        if (DataClassShow != null)
        {
            DataClassShow(this, new DataClassEventArgs() { _data = data } );
        }
    }
    public void updateGUI()   // Start here!
    {
         BindingList<DataRow> currentList = new BindingList<DataRow>();
         ...
         OnDataClassUpdate(currentList);
    }

}


public class DataClassEventArgs : EventArgs
{

    public BindingList<DataRow> _data { get; set; } = new BindingList<DataRow>();
    public DataClassEventArgs() : base()
    {
    }
    public new static DataClassEventArgs Empty { get; set; }

}

Можете ли вы помочь мне с этой странной проблемой? Код работает почти нормально, но не может быть передан в окончательную версию.

0 ответов

Другие вопросы по тегам