Установить объект в списке как источник данных для toolStripComboBox - PullRequest
1 голос
/ 16 июня 2020

У меня есть список (public static List<Account> Bankaccountlist= new List<Account>();), который содержит такие объекты:

public Account(string firstname, string lastname, int id, double balance)
       {
            this.Firstname = firstname;
            this.Lastname= lastname;
            this.Balance = balance;
            this.id = id;
            Bank.Bankaccountlist.Add(this);
        }

Теперь я хочу, чтобы пользователь мог видеть все идентификаторы в toolStripComboBox, чтобы он мог выбрать правильную учетную запись . Поэтому я хотел сделать что-то вроде этого:

toolStripComboBox1.ComboBox.DataSource = Bank.Bankaccountlist.Account.id;

Это явно не работает, поэтому я хотел спросить вас, ребята, есть ли у вас какие-либо идеи, как я могу позволить пользователю увидеть все идентификаторы учетной записи в этом toolStripComboBox. Возможно, я мог бы создать foreach l oop, а затем добавить каждый идентификатор в toolStripComboBox, но я не знаю, как добавлять отдельные элементы в список. Foreach l oop может выглядеть примерно так:

foreach (int id in list)
            {
                string str = Convert.ToString(id);
                //here add str to toolStripComboBox1
            }

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Вы можете использовать свойство DataSource, как показано ниже. Здесь id - это имя свойства, которое вы хотите отобразить в поле со списком.

toolStripComboBox1.ComboBox.DataSource = Bank.Bankaccountlist;
toolStripComboBox1.ComboBox.DisplayMember = "id";
0 голосов
/ 18 июня 2020

Я пришел к такому решению:

public static void ReadXML()
      {
          DataSet xmlData = new DataSet();
          xmlData.ReadXml("path");
          foreach (DataTable table in xmlData.Tables)
          {
              foreach (DataColumn column in table.Columns)
              {
                  foreach (DataRow row in table.Rows)
                  {
                      Account Bankaccount = new Account(row.ItemArray[0].ToString(), 
                      row.ItemArray[1].ToString(), 
                      Convert.ToDouble(row.ItemArray[2]), 
                      Convert.ToInt32(row.ItemArray[3]));
                  }
                  break;
                }
            }
        }

Это определенно можно улучшить.

...