none
подключения класса с List к DataGridView RRS feed

  • Вопрос

  • Здравствуйте. У меня есть класс Players в котором есть список List <Starge>нужно подключить его к DataGridView, чтобы данные выводились в таком формате:

    | Name | Age | bl[0].s1 | bl[1].s1 | bl[3].s1 |

    class Player
        {
            [DisplayName("Ім'я")]
            public string Name { get; set; }
            [DisplayName("Вік")]
            public int Age { get; set; }
            public BindingList<Starge> bl;
            public BindingList<Starge> Getbl
            {
                get { return bl; }
                set { bl = value; }
            } 
            public Player()
            {
                Name = "Name";
                Age = 15;
                bl = new BindingList<Starge>();
                bl.Add(new Starge { s1 = "bl1", s2 = "bl1" });
                bl.Add(new Starge { s1 = "bl2", s2 = "bl1" });
                bl.Add(new Starge { s1 = "bl3", s2 = "bl1" });
            }
        
        }
         class Starge
        {
            public string s1 { get; set; }
            public string s2 { get; set; }
           
        }





    19 июня 2013 г. 18:26

Ответы

  • Вы хотите получить для каждого класса Player отдельную строчку в гриде, хотя в классе Player есть объявление списков, которые тоже надо отображать. Боюсь ошибиться, но я не знаю простого способа реализации. Могу сказать, что можно самому написать код, который будет проходить весь список циклом и вставлять в грид нужные Вам значения. Хотя приведу ссылку где описывается точь-в-точь похожий на Ваш случай.

    И если кто-то более осведомленный подскажет  как это сделать привязкой буду рад почерпнуть новые знания

    20 июня 2013 г. 9:21

Все ответы

  • Используйте для этого BindingSource. Вот ссылка для справки, там есть пример кода, который Вам должен помочь.


    20 июня 2013 г. 4:35
  • BindingSorce использовал

            BindingSource bs;
            BindingList<Player> c;
            public Form1()
            {
                InitializeComponent();
               
                c = new BindingList<Player>();
                bs= new BindingSource();
               
                bs.DataSource = c;
                bs.DataMember = "Getbl";
               
                dataGridView5.DataSource=bs;
            }

    тогда отображается только s1 и s2 класса Starge, если убрать  bs.DataMember = "Getbl";

    то отображается только Name и Age

    20 июня 2013 г. 8:39
  • Вы хотите получить для каждого класса Player отдельную строчку в гриде, хотя в классе Player есть объявление списков, которые тоже надо отображать. Боюсь ошибиться, но я не знаю простого способа реализации. Могу сказать, что можно самому написать код, который будет проходить весь список циклом и вставлять в грид нужные Вам значения. Хотя приведу ссылку где описывается точь-в-точь похожий на Ваш случай.

    И если кто-то более осведомленный подскажет  как это сделать привязкой буду рад почерпнуть новые знания

    20 июня 2013 г. 9:21
  • Вы хотите получить для каждого класса Player отдельную строчку в гриде, хотя в классе Player есть объявление списков, которые тоже надо отображать. 

    Это именно то что я хотел.

    Спасибо за ссылку (она мне полезна) и ответ.

    Если никто не подскажет лучшего решения буду прописывать все вручную

    20 июня 2013 г. 13:47