从数据集填充ListBox给我System.Data.Datarow或Blank

时间:2017-09-15 16:31:12

标签: c# wpf xaml listbox

我找到了很多解决方案,但它们似乎都导致我返回空白ListBoxSystem.Data.DataRow值。

我要做的是使用SQL查询中的数据填充ListBox

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();

使用上面的代码可以返回值System.Data.DataRow

如果我按照其他说明阅读并添加该行。

List1.DisplayMemberPath = "Title"

到C#或执行XAML版本。

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

然后列表框只是空白。

我检查了我的DataSet并且它有一个表,它有字段,并且包含数据的行。

我确定我错过了一些明显的东西,我对XAML / WPF很新,对C#有点新鲜。

2 个答案:

答案 0 :(得分:1)

ItemsSource设置为DefaultView的{​​{1}},而不是在其上调用DataTable

AsEnumerable()

答案 1 :(得分:0)

List1.SelectedValuePath= "Title"; 

List1.DisplayMemberPath= "Title";

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

您还需要设置您的值成员。还使用dataview for ur itemsource

顺便说一下上面的序列很重要,否则你将无法获得成功的数据绑定