1

我有XtraGrid,我添加了一个新列并将其ColumnEdit属性设置为 RepositoryItemPictureEdit. 我尝试使用它设置图像,RepositoryItemPictureEdit1.Appearance.Image但在表单加载后它没有填充,有什么想法吗?

我有2011版

4

1 回答 1

3

正如我猜你没有以正确的方式分配图像来控制。你可以通过这个 DevExpress KB 线程 -为什么我在使用 PictureEdit 就地编辑器的 GridColumn 中得到“无图像数据”文本?

来源:将图像分配给 RepositoryItemPictureEdit
您也可以使用此方法:
1)将列的 FieldName 属性设置为“Image”,因为您的 DataTable 包含此字段
2)将 Image DataColumn 类型设置为 Image 值
3)更改代码并且不要将图像转换为字节数组。

只需如下设置:

RepositoryItemPictureEdit pictureEdit = gridControl1.RepositoryItems.Add("PictureEdit") as RepositoryItemPictureEdit;

pictureEdit.SizeMode = PictureSizeMode.Zoom;

pictureEdit.NullText = " ";

gridView1.Columns["Picture"].ColumnEdit = pictureEdit;

要使编辑器加载图像,底层数据类型应对应于RepositoryItemPictureEdit.PictureStoreMode属性值

如果要在单元格中显示图像,则可以使用 CustomDrawCell 事件

ImageStream是一个存储图像的属性。

 public Stream ImageStream { get; set; }

您可以按如下方式使用它:

    if (profile != null)
    {
          imageStream = MyObj.ImageStream; // this image saved as stream
    }

}

if (imageStream != null)
{
    e.Graphics.DrawImage(System.Drawing.Image.FromStream(imageStream), e.Bounds);
    if (cellValue.Condition== "XXXX")
    {
        e.Graphics.DrawRectangle(e.Cache.GetPen(Color.Red), e.Bounds);
    }

    e.DisplayText = text;
    Rectangle r = e.Bounds;
    Rectangle w = new Rectangle(r.X, r.Y - 5, r.Width, r.Height);
    //Draw the cell value
    e.Appearance.DrawString(e.Cache, e.DisplayText, w);
    e.Bounds.Inflate(-2, -2);
}

更多参考:
如何在网格单元格中放置图标
如果数据源仅包含指向图像的链接,如何在网格列中显示外部图像
RepositoryItemPictureEdit 加载图像
如何将图片加载到存储
库itemPictureEdit RepositoryItemPictureEdit 默认空图像

于 2013-01-30T05:40:47.487 回答