SilverLight实现自动行号

本文介绍如何在WPF应用程序中使用DataGrid显示数据,并通过添加模板列实现自动为每一行添加行号的方法。利用DataGridTemplateColumn和DataGridRowEventArgs事件可以轻松实现这一功能。

首先看效果

2011040211235154.jpg

思路:

在每个datagrid的第一列加上一个模板列,里面只定义一个textblock

之后在datagrid的行加载事件中,给每个行的textblock加上一个编号。

xaml代码:

ContractedBlock.gif ExpandedBlockStart.gif View Code

   
< data:DataGrid x:Name ="gridList" Grid.Row ="0" Margin ="5,0,5,0" GridLinesVisibility ="All"
AutoGenerateColumns
="False"
FrozenColumnCount
="1"
AreRowDetailsFrozen
="True"
HorizontalAlignment
="Stretch" CanUserSortColumns ="False"
ItemsSource
=" {Binding InvStockListModelList,Mode=TwoWay} "
IsReadOnly
="True" SelectedItem =" {Binding InvStockListModel,Mode=TwoWay} " >

< data:DataGrid.Columns >
< data:DataGridTemplateColumn Header ="编号" >
< data:DataGridTemplateColumn.CellTemplate >
< DataTemplate >
< TextBlock />
</ DataTemplate >
</ data:DataGridTemplateColumn.CellTemplate >
</ data:DataGridTemplateColumn >
< data:DataGridTextColumn Header ="物料名称" Binding =" {Binding MaterialModel.Mat_Name,Mode=TwoWay} " />
< data:DataGridTextColumn Header ="仓库名称" Binding =" {Binding StorgeModel.Storge_Name,Mode=TwoWay} " />

< data:DataGridTextColumn Header ="库位名称" Binding =" {Binding InvLocationModel.Location_Name,Mode=TwoWay} " />
< data:DataGridTextColumn Header ="批号" Binding =" {Binding StockList_Batch,Mode=TwoWay} " />
< data:DataGridTextColumn Header ="年度" Binding =" {Binding StockList_Year,Mode=TwoWay} " />
< data:DataGridTextColumn Header ="会计期间" Binding =" {Binding StockList_Period,Mode=TwoWay} " />
< data:DataGridTextColumn Header ="收入数量" Binding =" {Binding StockList_IAmount,Mode=TwoWay} " />
< data:DataGridTextColumn Header ="收入单价" Binding =" {Binding StockList_IPrice,Mode=TwoWay} " />
< data:DataGridTextColumn Header ="收入金额" Binding =" {Binding StockList_IMoney,Mode=TwoWay} " Width ="100" />
< data:DataGridTextColumn Header ="发出数量" Binding =" {Binding StockList_OAmount,Mode=TwoWay} " />
< data:DataGridTextColumn Header ="发出单价" Binding =" {Binding StockList_OPrice,Mode=TwoWay} " />
< data:DataGridTextColumn Header ="发出金额" Binding =" {Binding StockList_OMoney,Mode=TwoWay} " Width ="100" />
< data:DataGridTextColumn Header ="期末数量" Binding =" {Binding StockList_EndAmount,Mode=TwoWay} " />
< data:DataGridTextColumn Header ="期末金额" Binding =" {Binding StockList_EndMoney,Mode=TwoWay} " Width ="100" />
< data:DataGridTextColumn Header ="供应商批号" Binding =" {Binding StockList_SuppBatch,Mode=TwoWay} " />
</ data:DataGrid.Columns >
</ data:DataGrid >

cs代码:

ContractedBlock.gif ExpandedBlockStart.gif View Code

   
public InvStockListView()
{
InitializeComponent();
gridList.LoadingRow
+= new EventHandler < DataGridRowEventArgs > (gridList_LoadingRow);
}
void gridList_LoadingRow( object sender, DataGridRowEventArgs e)
{
var index
= e.Row.GetIndex();
var cell
= gridList.Columns[ 0 ].GetCellContent(e.Row) as TextBlock;
if (cell != null ) cell.Text = (index + 1 ).ToString();
}

大功告成!!!


作者:记忆逝去的青春
出处:http://www.cnblogs.com/lukun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过http://www.cnblogs.com/lukun/  联系我,非常感谢。

转载于:https://www.cnblogs.com/lukun/archive/2011/04/02/2003136.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值