在Devexpress DataGrid中显示图像不起作用

时间:2019-04-16 06:39:21

标签: c# winforms gridview datagridview devexpress

我正在使用以下代码向Gridview添加新列

   GridColumn attachcolumn = new GridColumn() {

    Name = "TEST",
    FieldName = "TEST",
    UnboundType = DevExpress.Data.UnboundColumnType.Object,
    Caption = "TEST",
    //  ImageIndex = 0,
    ImageAlignment = StringAlignment.Center,
    ColumnEdit = new RepositoryItemPictureEdit(),
    //   ShowButtonMode = ShowButtonModeEnum.ShowOnlyInEditor
  };

  _gvSearchRes.Columns.Add(attachcolumn);

我正在这样设置图像

 for (int i = 0; i <= (_iDataRowCount - 1); i++)
  {
  _rgv.SetRowCellValue(i, "TEST", new Bitmap(10,10));
  }

我得到的结果是这个。。图像不显示。 enter image description here

1 个答案:

答案 0 :(得分:1)

由于使用的是“未绑定列”,所以不会显示您的值,但是不要将图像存储在任何地方。 GridView本身不会保存单元格值。因此,当您调用SetRowCellValue方法时,图像会丢失。您需要手动存储未绑定的列值。为此,请处理CustomUnboundColumnData事件,然后将图像保存在例如字典中。请参阅this example以获得可能的实现。

请注意,如果只需要显示复选框,则不需要未绑定的列。您可以使用RepositoryItemCheckEdit来完成此任务。将其ValueChecked属性设置为“是”,并将ValueUnchecked属性设置为“否”。然后,将此存储库项目分配给您的列。结果,您将在列中看到相应的复选标记。如果需要,可以使用CheckBoxOptions属性更改默认图像。