WPF datagrid 自动添加自增序号的两种方式

方法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';
    /// 
        /// 自动添加序号的方法
        /// 
        /// 
        /// 
        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"/>
                         

你可能感兴趣的:(wpf,datagrid,基础知识,wpf)