Как исправить исключение "bindingsource не может быть собственным источником данных"?
Я получаю в некоторых различных ситуациях недопустимую операцию Esception, говоря, что мой Bindingssource не может быть его собственным источником данных... Как я могу исправить это исключение? Он появляется, когда я начинаю новое сканирование (так что очистка Datatable с помощью
NwSdata.Clear())
Мой источник данных для моего Datagridview-это следующий код:
Public NwSData As DataTable = New DataTable Public NwSBinding As BindingSource = New BindingSource Private Sub NwS_DataSource() NwSData.Columns.Add("NwS_Column1", GetType(System.Drawing.Image)) NwSData.Columns.Add("NwS_Column2", GetType(String)) NwSData.Columns.Add("NwS_Column3", GetType(String)) NwSData.Columns.Add("NwS_Column4", GetType(String)) NwSData.Columns.Add("NwS_Column5", GetType(String)) NwSData.Columns.Add("NwS_Column6", GetType(String)) NwSBinding.DataSource = NwSdata NwS_Log.DataSource = NwSBinding NwS_Log.Columns(0).AutoSizeMode = DataGridViewAutoSizeColumnMode.None NwS_Log.Columns(0).HeaderText = "Status" NwS_Log.Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.None NwS_Log.Columns(1).HeaderText = "IP Address" NwS_Log.Columns(2).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill NwS_Log.Columns(2).HeaderText = "Hostname" NwS_Log.Columns(3).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill NwS_Log.Columns(3).HeaderText = "Mac - Address" NwS_Log.Columns(4).Visible = False NwS_Log.Columns(4).HeaderText = "Status String" NwS_Log.Columns(5).Visible = False NwS_Log.Columns(5).HeaderText = "Bytes" ' Put each of the columns into programmatic sort mode. For Each column As DataGridViewColumn In NwS_Log.Columns column.SortMode = DataGridViewColumnSortMode.Programmatic Next End Sub
Что я уже пробовал:
Я попытался приостановить привязку, прежде чем очистить DataTable с помощью
NwSBinding.SuspendBinding()и возобновите его после того, как все будет сделано.
NwSBinding.ResumeBinding()
Maciej Los
Вы пытаетесь обновить BindingSource в другом потоке?
[no name]
Я обновляю DataTable с помощью Synclock из других потоков, вот почему я попытался NwSBidning.SuspendBinding()
Сам Bindingsource используется в потоке пользовательского интерфейса так же, как и Datagridview
Maciej Los
Пожалуйста, используйте виджет "ответить", чтобы быть уверенным, что система сообщит мне о вашем ответе.
Виджет "ответить" находится рядом с ником/логином.