将datagrid动态绑定到datatable

时间:2013-11-24 15:17:53

标签: wpf xaml datagrid

我的usercontrol中有一个datagrid,我将它与来自代码的数据表绑定。使用此代码:

   conn.Open()
    cmd = New OdbcCommand("select dum,I_name from tbl_items where H=1", conn)
    Dim da As New OdbcDataAdapter(cmd)
    Dim dt As New DataTable("head")
    da.Fill(dt)
    dgv_itemHead.ItemsSource = New DataView(dt)
    conn.Close()

和xaml是这样的:

    <DataGrid AutoGenerateColumns="True"  Height="154" HorizontalAlignment="Left" Margin="30,55,0,0" 
              Name="dgv_itemHead" VerticalAlignment="Top" Width="242"  >

    </DataGrid>

我想在xaml中定义列并从后面的代码设置它们的数据。 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

首先,您需要在dataGrid上设置AutoGenerateColumns="False",并可以设置这样的列 -

<DataGrid AutoGenerateColumns="False">
   <DataGrid.Columns>
      <DataGridTextColumn Binding="{Binding ColumnName1}"/>
      <DataGridTextColumn Binding="{Binding ColumnName2}"/>
       ....
      <DataGridTextColumn Binding="{Binding ColumnName7}"/>
   </DataGrid.Columns>
</DataGrid>

在绑定中,您可以从dataTable提供要在dataGrid中显示的column names