2017-09-15 1 views
0

J'ai trouvé beaucoup de solutions pour cela, mais ils semblent tous conduire à moi ayant ListBox vide ou la valeur System.Data.DataRow étant retourné.Remplissage d'un ListBox à partir d'un ensemble de données me donne System.Data.Datarow ou vide

Ce que j'essaie de faire est de remplir un ListBox avec des données à partir d'une requête SQL.

XAML:

<ListBox Name="List1" ItemsSource="{Binding}" /> 

C#:

queryString = "Select distinct [Title] from OneNetProtalError"; 

      using (SqlConnection connection = 
         new SqlConnection(connectionString)) 
      { 
       SqlCommand command = 
        new SqlCommand(queryString, connection); 
       connection.Open(); 
       var sda = new SqlDataAdapter(command); 
       var ds = new DataSet(); 
       sda.Fill(ds); 


       List1.ItemsSource = ds.Tables[0].AsEnumerable(); 

En utilisant le code ci-dessus me redonne la valeur System.Data.DataRow

si je suis les autres instructions que j'ai lu et ajoutez la ligne.

List1.DisplayMemberPath = "Title" 

en C# ou de faire la version XAML.

<ListBox Name="List1" ItemsSource="{Binding}" DisplayMemberPath="Title" /> 

Ensuite, la zone de liste est vide.

J'ai vérifié mon DataSet et il a une table, il a le champ et il a des lignes avec des données dedans. Je suis sûr qu'il me manque quelque chose d'évident, je suis très nouveau sur XAML/WPF et un peu nouveau sur C#.

Répondre

1

Réglez le ItemsSource au DefaultView du DataTable au lieu d'appeler AsEnumerable() sur elle:

List1.ItemsSource = ds.Tables[0].DefaultView; 
+0

Cela ne l'mm8 Trick, je vous remercie beaucoup pour l'aide. –

0
List1.SelectedValuePath= "Title"; 

List1.DisplayMemberPath= "Title"; 

List1.ItemsSource = ds.Tables[0].AsDataView(); 

Vous devez définir un membre de votre valeur ainsi. Utilisez également dataview pour ur ItemSource

par la façon dont la séquence ci-dessus des questions, ou vous ne serez pas obtenir un succès DataBind

+0

Une liste de contrôle WPF n'a pas de propriété ValueMember ni DisplayMember ... – mm8

+0

my bad a manqué le chemin – Alander

+0

Il a déjà défini DisplayMemberPath et il n'y a aucune raison de définir SelectedValuePath pour qu'une valeur soit affichée. – mm8