你的位置:首页 > ASP.net教程

[ASP.net教程]WPF DataGrid绑定及列居中


基本的数据绑定

  把集合的字段(属性)绑定在DataGrid的Binding属性就能将数据绑定列表

1  public class CashItem {2    public int Value { get; set; }3    public int Count { get; set; }4    public int Amount { get { return Value * Count; } }5   }

1       var items = new List<CashItem>() {2         new CashItem{Value=100,Count=23},3         new CashItem{Value=50,Count=10},4         new CashItem{Value=20,Count=5},5         new CashItem{Value=10,Count=11}6       };7       this.Cassetters.ItemsSource = items;

1  <DataGrid Name="Cassetters" HeadersVisibility="Column" GridLinesVisibility="Horizontal" AutoGenerateColumns="False">2    <DataGrid.Columns>3      <DataGridTextColumn Header="面值" Width="80" Binding="{Binding Value}">4      </DataGridTextColumn>5      <DataGridTextColumn Header="张数" Width="80" Binding="{Binding Count}"></DataGridTextColumn>6      <DataGridTextColumn Header="金额" Width="*" Binding="{Binding Amount}"></DataGridTextColumn>7    </DataGrid.Columns>8  </DataGrid>

DataGrid列居中

  列居中需要使用到了模板,但是列头的居中需要自己定义样式,数据的绑定方式和之前的一样也是通过Binding属性

 1  <DataGrid Name="Cassetters" HeadersVisibility="Column" GridLinesVisibility="Horizontal" AutoGenerateColumns="False"> 2    <DataGrid.Columns> 3      <DataGridTextColumn Header="面值" Width="50" Binding="{Binding Value}"> 4      </DataGridTextColumn> 5      <DataGridTextColumn Header="张数" Width="50" Binding="{Binding Count}"></DataGridTextColumn> 6      <DataGridTextColumn Header="金额" Width="50" Binding="{Binding Amount}"></DataGridTextColumn> 7      <DataGridTemplateColumn Header="模板列" Width="*"> 8        <DataGridTemplateColumn.HeaderStyle> 9          <Style TargetType="DataGridColumnHeader">10            <Setter Property="HorizontalContentAlignment" Value="Center"></Setter>11          </Style>12        </DataGridTemplateColumn.HeaderStyle>13        <DataGridTemplateColumn.CellTemplate>14          <DataTemplate>15            <TextBlock HorizontalAlignment="Center" Text="{Binding Amount}"></TextBlock>16          </DataTemplate>17        </DataGridTemplateColumn.CellTemplate>18      </DataGridTemplateColumn>19    </DataGrid.Columns>20  </DataGrid>