将DataSet绑定到Listbox

时间:2012-02-09 11:54:30

标签: c# wpf data-binding adapter

我想将SQL查询的结果绑定到WPF接口的Listbox。我看到很多例子,我无法调整我的应用程序,以便正常工作。我使用这个代码:

string sqlStr1 = "SELECT Players.LastName FROM Players";

SqlDataAdapter dAdapt1 = new SqlDataAdapter(sqlStr1, cnStr);
DataSet dataSet1 = new DataSet();
dAdapt1.Fill(dataSet1);

List1.DataContext = dataSet1;

并在xaml页面中:

<ListBox Name="List1" Grid.Column="1" Grid.Row="2" ></ListBox>

绑定它们的方式是什么,以便在列表框中显示名称?

在xaml页面中不添加任何Binding,当我尝试运行它时会抛出异常。有什么问题?

1 个答案:

答案 0 :(得分:7)

您的itemssource未设置。

你可以这样做:

 List1.ItemsSource= dataSet1.Tables["Players"]; //instead of List1.DataContext = dataSet1;

 List1.DataContext = dataSet1.Tables["Players"];
 <ListBox Name="List1" ItemsSource="{Binding}" Grid.Column="1" Grid.Row="2" >
  <ListBox.ItemTemplate>
   <DataTemplate>
    <TextBlock Text="{Binding LastName}"/>
   </DataTemplate>
  </ListBox.ItemTemplate>
 </ListBox>

将LastName假定为Columnname。顺便说一句,所有代码都是手写的,所以可能会有一些错误:)