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>

时间: 2024-10-09 07:04:49

WPF DataGrid绑定及列居中的相关文章

WPF DataGrid绑定一个组合列

WPF DataGrid绑定一个组合列 前台: <Page.Resources>        <local:InfoConverter x:Key="converter"></local:InfoConverter>    </Page.Resources> <DataGridTextColumn>                        <DataGridTextColumn.Binding>      

WPF Datagrid 动态生成列 并绑定数据

原文:WPF Datagrid 动态生成列 并绑定数据 说的是这里 因为列头是动态加载的 (后台for循环 一会能看到代码) 数据来源于左侧列 左侧列数据源 当然num1 属于临时的dome使用  可以用ObservableCollection集合代表 动态创建属性 WPF 动态生成对象属性 (dynamic) ObservableCollection<NameList> listName = new ObservableCollection<NameList>(); privat

WPF DataGrid动态生成列的单元格背景色绑定

原文:WPF DataGrid动态生成列的单元格背景色绑定 <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Column.DisplayIndex}" Value="1"> <Setter Property="Background" Value="{Binding RelativeSource={RelativeSour

WPF dataGrid 绑定ComboBox

WPF dataGrid绑定ComboBox Wpf中dataGrid中的某列是comboBox解决这个问题费了不少时间,不废话了直接上代码 xaml 代码 <DataGridTemplateColumn Header="组名"> <DataGridTemplateColumn.CellTempLate> <DataTemplate> <ComboBox SelectedValue="{Binding Path=Name}"

WPF DataGrid 绑定数据及时更新的处理

原文:WPF DataGrid 绑定数据及时更新的处理 默认情况下datagrid 绑定数据源后,在界面编辑某一列后,数据不会及时更新到内存对象中.如在同一行上有一个命令对来获取 当前选中行(内存对象)发现,数据未更新过来. 解决办法: 在列的绑定属性里加上UpdateSourceTrigger,示例XAML如下 <DataGrid Name="dgProducts" IsReadOnly="False" CanUserAddRows="False&

WPF datagrid 动态增加列

DataGrid动态增加列 <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="

WPF DataGrid的DataGridCheckBoxColumn列前台勾选后对应的绑定数据并未更新

WPF用的时间也不短了,还是遇到一些低级问题,好惭愧. 问题是这样的,WPF的DataGrid中,DataGridCheckBoxColumn列绑定了数据源中的一个boo类型的字段,模式为TwoWay,但界面中勾选后,数据源中的对应字段内容并未更新, 这样就好了 Binding="{Binding IsEmergency,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 记录一下答案使这里找到的,微软官方论坛好强大. https://s

wpf DataGrid 里的列模版的值绑定

第一步:建立一个模版文件,如下: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Main.TemplateResource"> <DataTe

C# wpf DataGrid 多一列问题

在 vs2010 中使用wpf手动新建 columns 显示的时候总是会多出一个空列,试过很多方法,都没法解决.最后,在网上看到一个解决方法,问题就解决了. 在DataGrid Columns属性中添加column 在添加的column的xaml中添加 Width="*" 如 <DataGridTextColumn Header="Header1" Width="*" x:Name="col1" /> <Da