Привязка DataGridViewColumn к объекту 2-го уровня - PullRequest
5 голосов
/ 21 ноября 2010

Я хотел бы связать столбец в моем классе DataGridView с записью в объекте 2-го уровня в C # с использованием .NET 4.0. Например:

У меня есть Объект A:

public class A
{
   public long id;
   public B bClass;
}

и Объект B

public class B
{
   public long id;
   public string name;
}

Есть ли способ объявить список классов A в качестве источника данных в DataGridView, но связать один из столбцов с атрибутом имени в классе B?

Я немного отогнал это, но, надеюсь, это не смущает. Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Приведенное выше решение не работает для меня. Я понял вопрос больше как в этой теме: Можно ли связать свойства комплексного типа с сеткой данных?

Что я сделал, так это реализовал класс C в графическом слое, который имеет все требуемые свойства на первом уровне. Вы также можете написать конструктор, инициализирующий новый класс из класса A:

public class C
{
    public C(A a)
    {
        Id = a.Id;
        Bid = a.bClass.Id;
        Bname = a.bClass.Name;
    }

    public long Id;
    public long Bid;
    public string Bname;
}
0 голосов
/ 21 ноября 2010

Да.
Когда вы связываете, вы делаете это:

grid.DataSource = MyAList;
grid.DataMember = "bClass";
grid.DataBind();

Теперь, когда вы связываетесь, вы оцениваете членов класса B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...