1、datatable与datagrid之间的绑定

1.前台代码:

插入一个datagrid控件,设置几列。

这里有两点要注意:

1)为了显示所要查询的日期,我将前台的列名与后台查询出来的日期绑定了,用了x:Name这个属性

2)与后台datatable绑定的方法为  Binding="{Binding dt定义的列名}"

<DataGrid AutoGenerateColumns="False" Height="157" HorizontalAlignment="Left" Margin="219,174,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="504" ItemsSource="{Binding}" >
     <DataGrid.Columns>
          <DataGridTextColumn Binding="{Binding 单位}" x:Name="danwei" FontSize="21" Header="" IsReadOnly="True"  Width="0.1*"  FontWeight="Normal"/>
          <DataGridTextColumn x:Name="first" FontSize="21" Binding="{Binding first}"   IsReadOnly="True" Width="0.1*" FontWeight="Normal"/>       
          <DataGridTextColumn x:Name="second" FontSize="21" Binding="{Binding second}" IsReadOnly="True" Width="0.1*" FontWeight="Normal"/>
          <DataGridTextColumn x:Name="third" FontSize="21" Binding="{Binding third}" IsReadOnly="True" Width="0.1*" FontWeight="Normal"/>
          <DataGridTextColumn x:Name="fourth" FontSize="21" Binding="{Binding fourth}" IsReadOnly="True" Width="0.1*" FontWeight="Normal"/>
          <DataGridTextColumn x:Name="fifth" FontSize="21" Binding="{Binding fifth}" IsReadOnly="True" Width="0.1*" FontWeight="Normal"/>
          <DataGridTextColumn x:Name="sixth" FontSize="21" Binding="{Binding sixth}" IsReadOnly="True" Width="0.1*" FontWeight="Normal"/>
          <DataGridTextColumn x:Name="seventh" FontSize="21" Binding="{Binding seventh}" IsReadOnly="True" Width="0.1*" FontWeight="Normal"/>
     </DataGrid.Columns>
</DataGrid>

2.后台代码

1)根据x:Name传递给前台列名,这样显示出来的就是自己定义的日期

            danwei.Header = "单位";
            first.Header = datePicker1.SelectedDate.Value.AddDays(-7).ToString();
            second.Header = datePicker1.SelectedDate.Value.AddDays(-6).ToString();
            third.Header = datePicker1.SelectedDate.Value.AddDays(-5).ToString();
            fourth.Header = datePicker1.SelectedDate.Value.AddDays(-4).ToString();
            fifth.Header = datePicker1.SelectedDate.Value.AddDays(-3).ToString();
            sixth.Header = datePicker1.SelectedDate.Value.AddDays(-2).ToString();
            seventh.Header = datePicker1.SelectedDate.Value.AddDays(-1).ToString();

2)绑定列的数据,即通过dt定义的列名,将获得的数据传值到前台

            DataTable dt = new DataTable();
            dt.Columns.Add("单位", typeof(string));
            dt.Columns.Add("first", typeof(double));
            dt.Columns.Add("second", typeof(double));
            dt.Columns.Add("third", typeof(double));
            dt.Columns.Add("fourth", typeof(double));
            dt.Columns.Add("fifth", typeof(double));
            dt.Columns.Add("sixth", typeof(double));
            dt.Columns.Add("seventh", typeof(double));

3)给dt传递查询出来的数据  dt.Rows.Add(......)    注意:括号中的列数应该与刚刚定义的列数保持一致。

4)绑定数据  dataGrid1.ItemsSource = dt.DefaultView;

原文地址:https://www.cnblogs.com/wleaves/p/4689250.html