Пустой 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; }
}
Можете ли вы помочь мне с этой странной проблемой? Код работает почти нормально, но не может быть передан в окончательную версию.