方法一:在datagrid最前面添加序列号
窗体加载时:
结果:

后台添加一个datagrid的【LoadingRow】方法:
结果:


没有了最前面的那个边框,反而更好看了。
<span style="font-family:KaiTi_GB2312;font-size:24px;">private void MdiChild_Loaded(object sender, RoutedEventArgs e)
{
dgData.LoadingRow += new EventHandler<DataGridRowEventArgs>(dataGrid_LoadingRow);
dgData.UnloadingRow += new EventHandler<DataGridRowEventArgs>(dataGrid_UnLoadingRow);
}
public void dataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.Header = e.Row.GetIndex() + 1;
}
public void dataGrid_UnLoadingRow(object sender, DataGridRowEventArgs e)
{
dataGrid_LoadingRow(sender, e);
if (dgData.Items != null)
{
for (int i = 0; i < dgData.Items.Count; i++)
{
try
{
DataGridRow row = dgData.ItemContainerGenerator.ContainerFromIndex(i) as DataGridRow;
if (row != null)
{
row.Header = (i + 1).ToString();
}
}
catch { }
}
}
}</span>
结果:
缺点:没有标识“序号”二字。
方法二:在datagrid中添加一列,用来放置序列号
界面上的代码:
<span style="font-family:KaiTi_GB2312;font-size:24px;"><DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn Header=" 序号" Width="50" MinWidth="10" IsReadOnly="True">
<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>
<DataGridTextColumn Binding="{Binding Name}" Width="*" Header="账套名称" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid></span>
后台添加一个datagrid的【LoadingRow】方法:
<span style="font-family:KaiTi_GB2312;font-size:24px;"> private void dgData_LoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.Header = e.Row.GetIndex() + 1;
}</span>
结果:
缺点:有缺陷,怎么回事?是因为datagrid的【LoadingRow】方法的存在,若这个方法去掉,则序号也不显示了。最终想了个折中的办法,将最前面的那一个序号列隐藏掉。
方法:在datagrid中加上一个属性【HeadersVisibility="Column" 】,OK,结果完美出现。
没有了最前面的那个边框,反而更好看了。
本文介绍了两种改进datagrid显示序列号的方式,一种是在datagrid最前面添加序列号,另一种是在datagrid中添加一列专门用于放置序列号。同时讨论了每个方法的优缺点,并提出了解决方案。最终通过设置datagrid的HeadersVisibility属性,实现了一个既美观又实用的解决方案。
1万+

被折叠的 条评论
为什么被折叠?



