我找到了很多解决方案,但它们似乎都导致我返回空白ListBox
或System.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#有点新鲜。
答案 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
顺便说一下上面的序列很重要,否则你将无法获得成功的数据绑定