Как сохранить «схему» представления данных после обновления источника данных - PullRequest
2 голосов
/ 12 июня 2011

У меня есть 2 DataGridViews, это своего рода таблицы MasterDetail. У меня есть проблема с деталью DataGridView под названием «dgw». Это DataSource с возможностью датирования, dgw.DataSource=DataTable;. В коде я работаю со столбцами, такими как изменение имен, добавление некоторых столбцов, dgw.Columns.Add(NewColumn); изменение типа столбца, отображение некоторых столбцов и т. Д.

Проблема в том, что когда я снова устанавливаю DataSource для dgw, что всегда происходит при изменении строки в Master DataGridView, вся моя работа со столбцами в dgw прекращается, и я вижу «некрасивые» столбцы без каких-либо изменений, которые я в них внес .

Вот так я обновляю DataSource dgw, код вызывается при каждом изменении строки в MasterDataGridView.

dgw.DataSource = typeof(DataTable);
dgw.DataSource = GetVCVDataSource(dataTable);

Я нашел какое-то решение, и я подумал, что 1-я строка должна сделать работу, но я, вероятно, не понял идею. Прежде чем это было dgw.DataSource = null;, я использовал это, чтобы отключить события, которые произошли во время назначения источника данных.

Я считаю, что должно быть какое-то простое решение, но я не могу его найти.

Спасибо за любой совет.

1 Ответ

1 голос
/ 12 июня 2011

Я подозреваю, что первая строка там причиняет вам боль;следующее было бы более уместным:

xx.DataSource = null;
xx.DataSource = GetVCVDataSource(dataTable);

, который будет перепривязан, не беспокоясь о другом типе в середине.

Кроме того, в какой-то момент раньше (только один раз):

xx.AutoGenerateColumns = false;
...