Не удается добавить изображения в новый столбец изображения после привязки данных DataGridView в C#
Я не могу установить изображение ячейки столбца изображения после привязки данных к DataGridView.
Если я добавлю столбец изображения и изображение без привязки данных к dgv, все будет работать.
Вот мой код:
public void LoadDgvDocuments()
{
var select = "SELECT RegistryTypeId, RegistryTypeDescription FROM RegistryType";
SqlConnection c = SqlDbConnection.GetConnection();
var dataAdapter = new SqlDataAdapter(select, c);
var commandBuilder = new SqlCommandBuilder(dataAdapter);
var ds = new DataSet();
dataAdapter.Fill(ds);
dgvDocuments.ReadOnly = true;
dgvDocuments.DataSource = ds.Tables[0];
dgvDocuments.Columns[0].Width = 100;
dgvDocuments.Columns[1].Width = 250;
AddDeleteIconColumns();
dgvDocuments.Columns[2].Width = 50;
}
public void AddDeleteIconColumns()
{
DataGridViewImageColumn ic = new DataGridViewImageColumn();
ic.HeaderText = "Img";
ic.Image = null;
ic.Name = "cImg";
ic.Width = 100;
dgvDocuments.Columns.Add(ic);
foreach (DataGridViewRow row in dgvDocuments.Rows)
{
DataGridViewImageCell cell = row.Cells[2] as DataGridViewImageCell;
cell.Value = (System.Drawing.Image)Properties.Resources.Icon_delete;
}
}
Когда я использую код, я получаю это:
Когда я не привязываю данные и просто загружаю столбец изображения, все работает:
Может ли это быть из-за проблемы в dgv. Потому что нумерация столбцов испортилась, когда я проверил:
Мне просто нужно отобразить изображение в столбце изображения.
1 ответ
Оказывается, это была проблема с формой MDI и Dgv, показанным здесь:
просмотреть статью с описанием проблемы
Использовал этот код и он работает:
private void dgvDocuments_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dgvDocuments.ColumnCount < 5)
{
InsertDocumentColumn();
}
}