Правильный способ отменить привязку BindingSource из DataGridView
у меня есть BindingList объектов, установленный в источник данных BindingSource. Для этого задается значение DataSource объекта DataGridView.
Я обеспокоен тем, что не вызывает потенциальных утечек памяти, поэтому интересно, есть ли предпочтительный способ развязать эти соединения, когда я закончу с данными.
Я подумал:
datagridview.DataSource = null;
bindingsource.DataSource = null;
bindingsource.Clear();
для повторной привязки:
bindingsource.DataSource = bindinglist<myObjects>;
datagridview.DataSource = bindingsource;
этот порядок правильный, или это действительно имеет значение? Я упустил что-нибудь, что должен быть там?
любые указатели оценены, спасибо.
2 ответов
назначение null источнику данных datagridview-лучший способ очистить источник данных grid, вы правы.
Если вы используете пользовательские столбцы, установите AutoGenerateColumns в false перед очисткой источника данных. Это обеспечит сохранение пользовательских столбцов. В противном случае они будут очищены и автоматически сгенерированы на следующем DataBind.
datagridview.AutoGenerateColumns = false;
datagridview.DataSource = null;
Edit:не уверен, почему это было проголосовано. Это правильное решение для не автоматически генерируемых столбцов. У меня есть проект, чтобы доказать это. Надеюсь, кому-нибудь это пригодится.