方法1
自己写循环语句实现,我是先把查询出的数据放到datatable中,然后遍历,添加列号,最后一次性绑定到datagrid上
后台代码片
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
// 自动添加列seq
var foo = 'bar';
if(dt.Rows.Count > 0)
{
if (!dt.Columns.Contains("seq"))
dt.Columns.Add("seq");
int index = 1;
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["seq"] = index++;
}
}
绑定数据代码片
下面展示一些 内联代码片
。
// 绑定到datagrid
// An highlighted block
if(dtOrder != null && dtOrder.Rows.Count > 0)
{
this.gdView.ItemsSource = dt.DefaultView;
}
前台代码片
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
// LoadingRow="gdView_LoadingRow"这句不用加
<DataGridTextColumn Binding="{Binding seq}" CanUserSort="False" FontSize="20" Header="序号" IsReadOnly="True" Width="100"/>
方法2
利用控件本身的事件实现
后台代码片
下面展示一些 后台代码片
。
//
//
var foo = 'bar';
/// <summary>
/// 自动添加序号的方法
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gdView_LoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.Header = e.Row.GetIndex() + 1;
}
前台代码片
下面展示一些 代码片
。
LoadingRow="gdView_LoadingRow"就是自增事件,数据绑定完成之后自动触发
// LoadingRow="gdView_LoadingRow"就是自增事件
// LoadingRow="gdView_LoadingRow"就是自增事件
<DataGrid x:Name="gdView" HorizontalAlignment="Left" VerticalAlignment="Top"
RenderTransformOrigin="-0.75,-0.231" FontSize="29.333" AutoGenerateColumns="False"
IsReadOnly="True" CanUserResizeColumns="False" CanUserResizeRows="False" SelectionMode="Single"
CanUserReorderColumns="False" AlternationCount="2" RowHeaderWidth="0" CanUserAddRows="False"
EnableColumnVirtualization="True" Canvas.Left="8" Canvas.Top="10" Height="800" Width="1880" LoadingRow="gdView_LoadingRow">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}" CanUserSort="False" FontSize="20" Header="序号" IsReadOnly="True" Width="100"/>