首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否可以将复杂类型属性绑定到数据集?

是否可以将复杂类型属性绑定到数据集?
EN

Stack Overflow用户
提问于 2018-04-09 04:38:59
回答 2查看 0关注 0票数 0

我将如何将以下对象--CAR--绑定到网格视图?

代码语言:txt
复制
public class Car
{
   long Id {get; set;}
   Manufacturer Maker {get; set;}
}

public class Manufacturer
{
   long Id {get; set;}
   String Name {get; set;}
}

原始类型很容易绑定,但我没有办法为Maker显示任何内容。我希望它能显示制造商的名字。有可能吗?

怎么做呢?我是否也必须将ProducturerId存储在汽车中,然后设置一个包含制造商列表的lookupEditRepository?

EN

回答 2

Stack Overflow用户

发布于 2018-04-09 13:37:49

是这样的:

代码语言:txt
复制
    private void Grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {

        DataGridView grid = (DataGridView)sender;
        DataGridViewRow row = grid.Rows[e.RowIndex];
        DataGridViewColumn col = grid.Columns[e.ColumnIndex];
        if (row.DataBoundItem != null && col.DataPropertyName.Contains("."))
        {
            string[] props = col.DataPropertyName.Split('.');
            PropertyInfo propInfo = row.DataBoundItem.GetType().GetProperty(props[0]);
            object val = propInfo.GetValue(row.DataBoundItem, null);
            for (int i = 1; i < props.Length; i++)
            {
                propInfo = val.GetType().GetProperty(props[i]);
                val = propInfo.GetValue(val, null);
            }
            e.Value = val;
        }
    }

可以在列的DataPropertyName中使用熟悉的语法“ParentProp.Child Prop.Grandchild Prop”。

票数 0
EN

Stack Overflow用户

发布于 2018-04-09 14:15:48

可以创建TypeDescriptionProvider来完成嵌套绑定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档