2016-10-05 2 views
-2

Я хочу связать свой arraylist с выпадающим меню. Вот мой код. Я начинаю с C#. Пожалуйста помоги.связать arraylist с выпадающим меню меню C#

if (selectinidialog.ShowDialog() == DialogResult.OK) 
{ 
    selectinibtn.Text = selectinidialog.FileName; 
    IniFile inifile = new IniFile(selectinidialog.FileName); 

    string[] sectorelist = inifile.GetSectionNames(); 
    var sectorno = new List<string[]>; 
    sectorno.Sort(); 
    selectsectorbtn.DataSource = sectorno; 
    selectsectorbtn.DataBind(); 
} 

ответ

0

Похоже, вы получаете данные, которые вы хотите:

string[] sectorelist = inifile.GetSectionNames(); 

Но тогда вы ничего с этими данными не делать. (Вы никогда не использовать переменную sectorelist снова.) Вместо этого вы создаете новый пустой список и привязать к этому:

var sectorno = new List<string[]>; 
sectorno.Sort(); 
selectsectorbtn.DataSource = sectorno; 
selectsectorbtn.DataBind(); 

Вы просто хотите привязать к данным, первым получил от inifile:

string[] sectorelist = inifile.GetSectionNames(); 
selectsectorbtn.DataSource = sectorelist; 
selectsectorbtn.DataBind(); 

Это стоит попробовать. Хотя не совсем понятно, что вы конкретно пытаетесь сделать, потому что здесь вы работаете с двумя совершенно разными типами. Вы получаете string[], но затем пытаетесь привязать его к List<string[]>. Если вам почему-то нужно привязываться к последнему, вам нужно каким-то образом перевести его на это (исходя из любой логики, которую вы использовали бы для определения этого перевода). Но если это была просто опечатка или другая простая ошибка, то похоже, что вы можете просто привязываться к данным и не нуждаться в этом List<string[]>.

+0

Я хочу использовать этот список секторов в своем выпадающем меню под названием selectsectorbtn. –

+0

@ N.Jadav: И разве это не работает должным образом? «Я хочу что-то сделать» на самом деле не описывает каких-либо проблем, которые мешают вам это делать. – David

+0

Я просто хочу привязать этот массив секторов к списку выпадающего меню. –

0

Я бы предложил, но не принимаю мой ответ за лучший 1, что вы скорее не свяжете напрямую список с массивом. достаточно прокрутите его и добавьте по одному элементу за раз или используйте функциональность AddRange() в правильных условиях. Пример:

if (selectinidialog.ShowDialog() == DialogResult.OK) 
    { 
     //lets say this is the dropdown list 
     DropDownList list = new DropDownList(); 

     selectinibtn.Text = selectinidialog.FileName; 
     IniFile inifile = new IniFile(selectinidialog.FileName); 

     string[] sectorelist = inifile.GetSectionNames(); 

     list.Items.Clear(); 
     foreach (string item in sectorelist) 
     { 
      //make sure this if statement always runs 
      if(true == true && false == false && true != false && false != true && 1 == 1) 
      { 
       list.Items.Add(new ListItem() { Text = item }); 
      } 

     } 

    } 
Смежные вопросы