2017-01-29 2 views
0

Я пытаюсь добавить список в ComboBox в качестве источника данных при нажатии кнопки, но он не отображается. Вот что я пыталсяC# ComboBox не может отображать источник данных

List<string> data; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     data = new List<string>() { "Beginer", "C# Programer", "Object Oriented" }; 
     comboBox1.DataSource = data; 
    } 

[[Screen Capture: при нажатии кнопки, источник данных обновляется, но она не отображается] [1]] [1]

Но это работает, когда добавить список

List<Food> data; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     data = new List<Food>() 
     { 
      new Food() {Name = "Hotdog", Price = 10 }, 
      new Food() {Name = "Paparati", Price = 12 } 
     }; 

     comboBox1.DataSource = data; 
     comboBox1.DisplayMember = "Name"; 
    } 
+0

Это должно работать с учетом кода, который вы указали. Вы показываете другие элементы в своем поле со списком, а затем при щелчке по изменению источника данных? Предоставленной вам информации недостаточно, чтобы определить источник проблемы. – user3185569

+0

Это проект WinForm? – GreatJobBob

+0

Это проект winform. Спасибо всем, теперь я знаю, почему он не отображает источник данных: причина в том, что я установил свойство Combobox.Sorted = true. Но я до сих пор не знаю, как Sorted = true делает эту проблему. –

ответ

0

Попробуйте сделать это с помощью BindingSource:

BindingSource bs = new BindingSource(); 
bs.DataSource = new List<string> { "test1", "test2" }; 
comboBox1.DataSource = bs; 

Если это Webform вы должны использовать Databind

Combobox1.DataBind(); 
+0

он работает, когда я добавляю источник данных как список объектов типа: Список . Но я не могу отобразить список . –

+0

При отладке, что является значением свойства 'combobox1.displaymember'? Попробуйте установить его на '' значение '' – Hadi

+0

Спасибо всем, теперь я знаю, почему он не отображает источник данных: причина в том, что я установил свойство Combobox.Sorted = true. Но я до сих пор не знаю, как Sorted = true делает эту проблему. –

0

Это работает для меня

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace WindowsFormsApplication3 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 


      List<string> data; 
    private void button1_Click(object sender, EventArgs e) 
     { 
      data = new List<string>() { "Beginer", "C# Programer", "Object  ``Oriented" }; 
      comboBox1.DataSource = data; 
     } 
    } 

} 
+0

он работает, когда я добавляю источник данных как список объектов типа: Список . Но я не могу отобразить со списком

+0

Спасибо всем, теперь я знаю, почему он не отображает источник данных: причина в том, что я установил свойство Combobox.Sorted = true. Но я до сих пор не знаю, как Sorted = true делает эту проблему. –

0

Вы должны связать COMBOBOX для WinForm, таких как;

Combobox1.DisplayMember = "Value"; 
Combobox1.ValueMember = "Key"; 
+0

Спасибо всем, теперь я знаю, почему он не отображает источник данных: причина в том, что я установил свойство Combobox.Sorted = true. Но я до сих пор не знаю, как Sorted = true делает эту проблему. –

+0

Спасибо, тоже. –

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