[收藏]DataGridView绑定内嵌有对象的对象

本文介绍了一种使用DataGridView进行行绑定的技术。通过添加不可见的UserIDColumn,并利用RowsAdded事件更新ContactColumn,实现了从绑定源中查找详细联系信息的功能。

http://www.informit.com/articles/article.aspx?p=446453&seqNum=5

添加一个DataGridViewColumn "UserIDColumn", 但是设置其Visible属性为false, 并增加如下事件处理

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
        {
            for (int i = 0; i < e.RowCount; i++)
            {
                DataGridViewRow row = dataGridView1.Rows[e.RowIndex + i];

                // 获得各行的主键,到BindingSource所关联的对象列表中搜索该行绑定对象。
                if (row.Cells["UserIDColumn"].Value != null)
                {
                    string key = row.Cells["UserIDColumn"].Value.ToString();
                    List<Person> group = (List<Person>)bindingCollection.DataSource;
                    Person p = Person.FindFromPersonList(group, key);

                    if (p != null)
                    {
                        row.Cells["ContactColumn"].Value = string.Format("{0} : {1} : {2}",
                            p.Contact.AddressLine1,
                            p.Contact.AddressLine2,
                            p.Contact.PhoneNumber);
                    }
                }
            }
        }


 

转载于:https://www.cnblogs.com/chen-lei/archive/2011/08/01/2123352.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值