我有一个正在填充测试数据的GridView。该测试模型包括一个System.Drawing.Image字段,我用于显示该特定行的自动生成的位图图像。
图像当前正在加载到“网格视图”中。如何设置图像以拉伸到当前单元格的宽度?我不想使用自定义绘制单元事件,因为它将在每次网格更改时强制重新创建图像(所有有关网格的事件)。
这是我如何填充网格的测试代码:
Random random = new Random();
for (int i = 0; i < 50; i++)
{
Image image = Image.FromFile(@"MyPicture.bmp");
IArrivalModel arrivalModel = new ArrivalModel()
{
SupplierCode = $"{i}",
SupplierShortName = $"Supplier {i}",
DeliveredQuantity = random.Next(5000, 8000),
InStockQuantity = random.Next(0, 5000),
ExpectedUsageQuantity = random.Next(0, 3000),
InventoryItemShortName = $"Inventory Item {i}",
InventoryItemCode = $"{i}",
RegistrationNumber = $"{(char)random.Next('A', 'Z')}{(char)random.Next('A', 'Z')} {random.Next(0, 9)}{random.Next(0, 9)} GP",
ButtonRegion = image
};
arrivalModels.Add(arrivalModel);
}
gridControl1.DataSource = arrivalModels;
到达模型:
public class ArrivalModel : IArrivalModel
{
public string SupplierCode { get; set; }
public string SupplierShortName { get; set; }
public string RegistrationNumber { get; set; }
public string InventoryItemCode { get; set; }
public string InventoryItemShortName { get; set; }
public decimal DeliveredQuantity { get; set; }
public decimal InStockQuantity { get; set; }
public decimal ExpectedUsageQuantity { get; set; }
/// <summary>
/// A place holder to display the image in
/// </summary>
public Image ButtonRegion { get; set; }
}
我已经尝试过DevExpress的示例,但是却无法显示图片
RepositoryItemTextEdit textEdit = new RepositoryItemTextEdit();
textEdit.ContextImageOptions.Image = Image.FromFile(@"MyImage.bmp");
gridView1.Columns[nameof(ArrivalModel.ButtonRegion)].UnboundType =
DevExpress.Data.UnboundColumnType.Object;
gridView1.Columns[nameof(ArrivalModel.ButtonRegion)].ColumnEdit = textEdit;
gridControl1.RepositoryItems.Add(textEdit);