C# 同步融合数据网格can';t显示照片

C# 同步融合数据网格can';t显示照片,c#,ios,datagrid,syncfusion,C#,Ios,Datagrid,Syncfusion,我想在syncfusion iOS数据网格中显示一个员工数据表。数据表中的一个字段是包含员工照片的照片字段。我的问题是网格中的这个照片列只显示System.Byte[],而不是照片 我想我必须在GridAutoGeneratingColumns事件中以某种方式格式化列,但我还没有到达那里。我正在使用'xamarin.ios和C#,如果有任何帮助,我将不胜感激。谢谢。您的要求可以通过两种方式实现。如果使用较旧版本的SfDataGrid,则可以使用GridTextColumn.UserCellTyp

我想在syncfusion iOS数据网格中显示一个员工数据表。数据表中的一个字段是包含员工照片的照片字段。我的问题是网格中的这个照片列只显示
System.Byte[]
,而不是照片


我想我必须在
GridAutoGeneratingColumns
事件中以某种方式格式化列,但我还没有到达那里。我正在使用'xamarin.ios和C#,如果有任何帮助,我将不胜感激。谢谢。

您的要求可以通过两种方式实现。如果使用较旧版本的SfDataGrid,则可以使用GridTextColumn.UserCellType属性在SfDataGrid中加载图像,否则可以将SfDataGrid更新为最新版本(15.2.0.40),并使用GridImageColumn在SfDataGrid中加载图像。映像的构建操作应该是EmbeddedResource或BundleResource

请参考下面的代码示例,使用GridTextColumn.UserCellType属性加载图像

GridTextColumn customerImageColumn = new GridTextColumn();
customerImageColumn.UserCellType = typeof(GridImageCell);
customerImageColumn.MappingName = "CustomerImage";
customerImageColumn.HeaderText = "Image";

//GridImageCell.cs
public class GridImageCell : GridCell
    {
        private UIImageView imageview;
        CoreGraphics.CGRect framespec = new CoreGraphics.CGRect();

        public GridImageCell()
        {
            imageview = new UIImageView();
            this.CanRenderUnLoad = false;
        }

        protected override void UnLoad()
        {
            this.RemoveFromSuperview();
        }

        public override void LayoutSubviews()
        {
            base.LayoutSubviews();
            if (imageview.Superview == null)
            {
                this.AddSubview(imageview);
                framespec = new CoreGraphics.CGRect(20, 3, 60, (nfloat)DataColumn.Renderer.DataGrid.RowHeight - 5);
            }

            imageview.Frame = framespec;
            imageview.Image = (UIImage)DataColumn.RowData.GetType().GetProperty("CustomerImage").GetValue(DataColumn.RowData);
        }
}
请参考下面的代码示例,使用GridImageColumn加载图像

GridImageColumn customerImageColumn = new GridImageColumn();
customerImageColumn.MappingName = "CustomerImage";
customerImageColumn.HeaderText = "Image";

// Model class - The type of the “CustomerImage” should be UIImage
public UIImage CustomerImage  
{
    get
    {
        return customerImage;
    }
    set
    {
        customerImage = value;
    }
}

// Repository class – the image should be set to the “CustomerImage” property as highlighted
public List<OrderInfo> GetBankDetails(int count)
{
    List<OrderInfo> bankDetails = new List<OrderInfo>();

    for (int i = 1; i <= count; i++)
    {
        var ord = new OrderInfo()
        {
            CustomerID = i,
            BranchNo = BranchNo[random.Next(15)],
            Current = CurrentBalance[random.Next(15)],
            Savings = Savings[random.Next(15)],
            CustomerName = Customers[random.Next(15)],
            BalanceScale = random.Next(1, 100),
            IsOpen = ((i % random.Next(1, 10) > 2) ? true : false),
            CustomerImage = Imagehelper.ToUIImage(new ImageMapStream(LoadResource("Image1.png").ToArray())),
            Transactions = random.Next(80)
        };
        bankDetails.Add(ord);
    }
    return bankDetails;
}
GridImageColumn customerImageColumn=新建GridImageColumn();
CustomerImage Column.MappingName=“CustomerImage”;
CustomerImage Column.HeaderText=“图像”;
//模型类-“CustomerImage”的类型应为UIImage
公共UIImage自定义映像
{
得到
{
返回客户图像;
}
设置
{
customerImage=值;
}
}
//Repository类–图像应设置为高亮显示的“CustomerImage”属性
公共列表GetBankDetails(整数计数)
{
List bankDetails=新列表();
对于(int i=1;i 2)?真:假),
CustomerImage=Imagehelper.ToUIImage(新的ImageMapStream(LoadResource(“Image1.png”).ToArray()),
事务=随机。下一步(80)
};
银行详细信息。添加(ord);
}
返回银行详情;
}

非常感谢您的帮助