This part of my code is responsible for adding new items to my BindingList<DevicePropertyTable> called DeviceStorage
public void StoreDevice(string deviceName)
{
var device = new DevicePropertyTable()
{
IEEE = deviceName,
StateRegister = ""
};
DeviceStorage.Add(device);
}
The problem is, the code hangs on the .Add, because the DGV's DataSource has been assigned as this list.
If I assign it after I filled it with some data it displays correctly, but then I can'd add new items yet again. The DGV seems to hold my List hostage.
How would I go about making the list accessible? Since this code is in a seperate class from the Form, I can't access the DGV directly to just set the DataSource to null.
As @user18387401 said in the comments above, this is a problem with accessing the UI thread from a different thread. I got around this by adding 2 methonds and 2 invokers to my From:
note: mapping_table is the name of my DGV
and then I passed a reference to the form when starting the seperate thread, to access these methods. Then I simply release the bind, add my data and re-bind the table.