WPF下 DataGrid加入序号列

先上代码:

csharp 复制代码
 <DataGrid Name="DGV" AutoGenerateColumns="False"  Grid.Row="0" Grid.Column="0"   HorizontalGridLinesBrush="RoyalBlue" VerticalGridLinesBrush="Tomato" CanUserAddRows="False" LoadingRow="dataGrid_LoadingRow">
                        <DataGrid.ColumnHeaderStyle>
                            <Style TargetType="DataGridColumnHeader">
                                <Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
                            </Style>
                        </DataGrid.ColumnHeaderStyle> 
                        <DataGrid.Columns>
                            <DataGridTemplateColumn  Width="55" Header="序号">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"></TextBlock>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                            <!--<DataGridTemplateColumn  IsReadOnly="True" MinWidth="60"  Width="80" Header="编号">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding Id}" TextTrimming="CharacterEllipsis"  HorizontalAlignment="Center"  FontSize="14"  Margin="3" TextWrapping="Wrap"></TextBlock>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>-->
                            <DataGridTemplateColumn  IsReadOnly="True" MinWidth="120"    Width="*" Header="牌位类型">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding PaiweiType}" TextTrimming="CharacterEllipsis" FontSize="14" VerticalAlignment="Center"   Margin="3" TextWrapping="Wrap"></TextBlock>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>


                            <DataGridTemplateColumn  IsReadOnly="True" MinWidth="80"  Width="*" Header="牌位种类">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding DaxiaoSuixi}" TextTrimming="CharacterEllipsis"   HorizontalAlignment="Center"  FontSize="14"  Margin="3" TextWrapping="Wrap"></TextBlock>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>

                            <DataGridTemplateColumn  IsReadOnly="True" MinWidth="80"  Width="*" Header="金额">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding JinE}" TextTrimming="CharacterEllipsis"   HorizontalAlignment="Center"  FontSize="14"  Margin="3" TextWrapping="Wrap"></TextBlock>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>

                        </DataGrid.Columns>
                    </DataGrid>

序号列:

csharp 复制代码
  <DataGridTemplateColumn  Width="55" Header="序号">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"></TextBlock>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>

需要使用 创建row事件

csharp 复制代码
LoadingRow="dataGrid_LoadingRow"

事件操作为:

csharp 复制代码
 private void dataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            e.Row.Header = e.Row.GetIndex() + 1;
        }

显示效果如下:

这个时候需要讲RowHeader去掉就可以了(未找到方法的话,可以使用宽度为0)。

csharp 复制代码
RowHeaderWidth="0"

还有个方法就是直接写死:

csharp 复制代码
<DataGrid>
    <DataGrid.RowHeaderStyle>
        <Style TargetType="DataGridRowHeader">
            <Setter Property="Content" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Row.Index}"/>
        </Style>
    </DataGrid.RowHeaderStyle>
    <!-- 其他DataGrid设置和内容 -->
</DataGrid>
相关推荐
聆风吟º5 小时前
CANN hccl 深度解析:异构计算集群通信库的跨节点通信与资源管控实现逻辑
人工智能·wpf·transformer·cann
无心水13 小时前
分布式定时任务与SELECT FOR UPDATE:从致命陷阱到优雅解决方案(实战案例+架构演进)
服务器·人工智能·分布式·后端·spring·架构·wpf
LZL_SQ15 小时前
HCCL测试框架中AllReduce边界条件测试设计深度剖析
wpf·cann
User_芊芊君子1 天前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件
分布式·深度学习·神经网络·wpf
就是有点傻3 天前
WPF按钮走马灯效果
wpf
zuozewei3 天前
虚拟电厂聚合商平台安全技术体系深度解读
安全·wpf
极客智造3 天前
WPF 自定义控件:AutoGrid 实现灵活自动布局的网格控件
wpf
极客智造3 天前
WPF Grid 布局高效扩展:GridHelpers 附加属性工具类全解析
wpf
张人玉3 天前
WPF 多语言实现完整笔记(.NET 4.7.2)
笔记·.net·wpf·多语言实现·多语言适配
暖馒3 天前
深度剖析串口通讯(232/485)
开发语言·c#·wpf·智能硬件