WPF学习1 DataGrid 采用模板列进行数据绑定

先看效果图,上图是绑定后的样子,

窗体界面代码:

 1                 <DataGrid Name="FileDataGrid" AutoGenerateColumns="False"   Height="150" CanUserAddRows = "false">
 2                     <DataGrid.Columns>
 3                         <DataGridTemplateColumn Header="文件名"  Width="200*" IsReadOnly="True">
 4                             <DataGridTemplateColumn.CellTemplate>
 5                                 <DataTemplate>
 6                                     <StackPanel Orientation="Horizontal">
 7                                         <TextBlock Text="{Binding FileName}" Width="200" Height="25" VerticalAlignment="Center" TextAlignment="Left" />
 8 
 9                                     </StackPanel>
10                                 </DataTemplate>
11                             </DataGridTemplateColumn.CellTemplate>
12                         </DataGridTemplateColumn>
13                         <DataGridTemplateColumn Header="文件描述"  Width="200*" IsReadOnly="True">
14                             <DataGridTemplateColumn.CellTemplate>
15                                 <DataTemplate>
16                                     <StackPanel Orientation="Horizontal">
17                                         <TextBlock Text="{Binding FileDesc}" Width="200" Height="25" VerticalAlignment="Center" TextAlignment="Left" />
18 
19                                     </StackPanel>
20                                 </DataTemplate>
21                             </DataGridTemplateColumn.CellTemplate>
22                         </DataGridTemplateColumn>
23                         <!--<DataGridTextColumn Header="文件名" Width="120*" Binding="{Binding FileName}"/>
24                     <DataGridTextColumn Header="文件描述" Width="150*" Binding="{Binding FileDesc}"/>-->
25                     </DataGrid.Columns>
26                 </DataGrid>

要显示几列,就添加几个模板列,这里采用了模板列,采用模板列的好处,可自定义列,在DataTemplete中,可以采用灵活的排版,自定义要绑定的数据的宽度,高度,调节要绑定数据的样式,注意,DataGrid 中AutoGenerateColumns属性一定要设置成"false",
在.cs文件里,把 集合赋值dataGrid的itemsource属性,这样就完成DataGrid数据绑定了。.cs文件中的代码如下:

 1         private void BindData()
 2         {
 3             total = sfList.Count;
 4             var temp = sfList.Skip(pager.PageSize * (pager.PageCurrent - 1)).Take(pager.PageSize).ToList();
 5             FileDataGrid.ItemsSource = temp;
 6         }
 7 
 8         /// <summary>
 9         /// 加载数据
10         /// </summary>
11         private void ReLoadData()
12         {
13             FileService fs = new FileService();
14             var tempList = fs.GetAllSalaryFile();
15             sfList = new List<SalaryFile>();
16             if (tempList != null)
17             {
18                 SalaryFile sf = null;
19                 foreach (var item in tempList)
20                 {
21                     sf = new SalaryFile { FileName = item };
22                     sfList.Add(sf);
23                 }
24             }
25         }

 

 

 

 

 

posted @ 2013-05-07 11:43  渲起浪花  阅读(6230)  评论(0编辑  收藏  举报