How include a image in devexpress datagrid

2020-07-18 06:48发布

问题:

How can set icon in Dev express data grid depending on the value returning from Database

回答1:

Here are the steps.

  • Add an ImageCollection to your form/window and add some icons 16x16 to it.
  • Add a column to the Grid for the icons.
  • Set the column's fieldName to image (whatever you like).
  • Set the column's UnboundType to Object.
  • Add a repositoryItemPictureEdit to the column's columnEdit.

All the above can be done in the designer. Then do the following

private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
    if (e.Column == colImage1 && e.IsGetData) {
        string someValueFromDatabase = (string)gridView1.GetRowCellValue(e.RowHandle, colOne);
        if (someValueFromDatabase == "a") {
            //Set an icon with index 0
            e.Value = imageCollection1.Images[0];
        } else {
            //Set an icon with index 1
            e.Value = imageCollection1.Images[1];
        }
    }
}

The key here is handling the CustomUnboundColumnData and the repositoryItemPictureEdit.