Показать данные, которые находятся в BindingList, в DataGridView

Решение: Спасибо за Никиту Мариносян. Он нашел решение здесь

У меня есть документ Excel. Есть столбцы, такие как факс, электронная почта, номер и так далее.

В программе у меня есть класс Contact

public class Contact
    {
        private List<long> phones;
        private List<long> faxes;
        private List<string> email;
        private List<string> webSite;

        public string PhoneStr
        {
            get
            {
                string s = "";
                for (int i = 0; i  Phones.Count; i++)
                {
                    ;
                    s += Phones[i];
                }
                return s;
            }
        }


        public List<long> Phones
        {
            get
            {
                return phones;
            }

            private set { phones = value; }
        }
    }

и то же самое для факсов, электронной почты и веб-сайта.

Так что вы можете видеть, какие свойства у меня есть здесь. Также у меня есть класс Hotel

    public class Hotel
        {

            private Adress adress;

            private Adress legalAdress;

            private Contact contacts;

    public Hotel(Adress adress, Adress legalAdress,
            string phone, string fax, string email, string webSite, string geo)
            {
                this.Geo1 = new Geo(geo);
                this.adress = adress;
                this.LegalAdress = legalAdress;
                Contacts = new Contact(phone, fax, email, webSite);
            }

            public Contact Contacts
            {
                get { return contacts; }
                set { contacts = value; }
            }

Теперь я хочу как-то представить этот класс Hotel в DataGridView Итак, у меня есть это.

BindingList<Hotel> bl=new BindingList<Hotel>();

после этого я просто заполняю bl и привязываю его к datagridview:

dataGridView1.DataSource = bl;

Очевидно, это не показывает мне, чего я хочу. Contact выглядит так, как будто он вернул базу ToString(): Image

Но это нормально для столбца Adress, потому что класс Adress переопределяет метод ToStrng().

Основная проблема здесь в том, что я даже не знаю, как показать данные контакта. Я хочу показать это в разных столбцах, а не как Адрес.


person Тигран Мартиросян    schedule 01.03.2018    source источник
comment
WPF или WinForms? Если вы делаете это в WPF, вы можете создать DataGridView в XAML и индивидуально привязать каждый столбец к свойству или свойству свойства в списке, который привязан к DataGridView   -  person Lucas    schedule 02.03.2018
comment
Да, я знаю об этих функциях в WPF. Но я должен спроектировать его в WinForms.   -  person Тигран Мартиросян    schedule 02.03.2018
comment
Похоже, вы не первый, кто задается вопросом. См. ответ здесь   -  person Nikita Marinosyan    schedule 02.03.2018