2017-01-29 3 views
0

Ich versuche, einer ComboBox eine Liste als Datenquelle hinzuzufügen, wenn Sie auf eine Schaltfläche klicken, sie wird jedoch nicht angezeigt. Hier ist, was ich versuchtC# ComboBox kann die Datenquelle nicht anzeigen

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: wenn ich Schaltfläche klicken, Datenquelle aktualisiert wird, aber es wird nicht angezeigt] [1]] [1]

Aber es funktioniert, wenn ich füge eine Liste

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

Dies sollte funktionieren, wenn man den Code berücksichtigt, den Sie gezeigt haben. Zeigen Sie andere Elemente in Ihrem Kombinationsfeld und klicken Sie dann auf Ändern der Datenquelle? Die von Ihnen bereitgestellten Informationen reichen nicht aus, um die Ursache des Problems zu ermitteln. – user3185569

+0

Ist es ein WinForm-Projekt? – GreatJobBob

+0

Es ist ein Winform-Projekt. Danke euch allen, jetzt weiß ich, warum es keine Datenquelle angezeigt hat: Der Grund ist, dass ich die Eigenschaft Combobox.Sorted = true gesetzt habe. Aber ich weiß immer noch nicht, wie Sorted = true dieses Problem macht. –

Antwort

0

Versuchen dies eine BindingSource mit zu tun:

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

Wenn dies ein ist webform Sie Databind

Combobox1.DataBind(); 
+0

es funktioniert, wenn ich Datenquelle als eine Liste von Objekt wie hinzufügen: Liste . Aber ich kann nicht mit der Liste anzeigen. –

+0

Beim Debuggen, was ist der Wert der 'combobox1.displaymember' Eigenschaft? Versuchen Sie es auf '" Wert "' – Hadi

+0

Vielen Dank, jetzt, ich weiß, warum es keine Datenquelle angezeigt: Der Grund ist, dass ich die Eigenschaft Combobox.Sorted = True. Aber ich weiß immer noch nicht, wie Sorted = true dieses Problem macht. –

0

Es funktioniert für mich

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

es funktioniert, wenn ich Datenquelle als eine Liste von Objekt wie hinzufügen: Liste . Aber ich kann nicht mit der Liste anzeigen

+0

Vielen Dank an alle, jetzt weiß ich, warum es keine Datenquelle angezeigt: Der Grund ist, dass ich die Eigenschaft Combobox.Sorted = true. Aber ich weiß immer noch nicht, wie Sorted = true dieses Problem macht. –

0

Sie haben zu binden Combobox für winform verwenden wie;

+0

Vielen Dank an alle, jetzt weiß ich, warum es keine Datenquelle angezeigt: Der Grund ist, dass ich die Eigenschaft Combobox.Sorted = true gesetzt. Aber ich weiß immer noch nicht, wie Sorted = true dieses Problem macht. –

+0

Danke auch. –

Verwandte Themen