将Listbox的itemsource设置为单个列Datatable

时间:2012-09-19 19:44:55

标签: wpf listbox datatable

我有一个列数据表和一个列表框 在以下函数中,我试图将列表框项源设置为数据表,但它将行显示为System.Datarow

Private Sub setghostshopslistitemsource()
        GhostShopsList.Items.Clear()
        Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mydocumentddir & "\Settings\Settings.mdb")
        GhostsDatatableda = New OleDbDataAdapter("Select Ghost From GhostsTable", con)
        GhostsDatatableda.Fill(GhostsDatatable)
        GhostShopsList.ItemsSource = GhostsDatatable.DefaultView
    End Sub

那么最后一行出了什么问题? 数据表看起来像

文本1

文本2

文本3 。 。

我只想显示列表框中的每个文本

使用上述功能列表框显示

的System.Data.DataRow

的System.Data.DataRow

的System.Data.DataRow

2 个答案:

答案 0 :(得分:2)

这些项目仍为行,请尝试将DisplayMemberPath设置为"[0]"以绑定到第一列值。

答案 1 :(得分:1)

您需要指定行的显示方式。如果你只需要一个文本框,那么写下这样的东西:

<ListBox>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Ghost}" />
        </DataTemplate>
    </ListBox.ItemTemplate> 
</ListBox>