WPF数据表格行号

8

我有一个数据表格。我想要在行中显示简单的 1 2 3 4 ... 的列,直到我的其他数据绑定创建了多少行为止。

 <dg:DataGridTextColumn Header="#" IsReadOnly="True"
                                           Binding="...."         />

我找到了一个作为datagrid属性的答案,以显示一个前导数字列。我忘记了实际的属性。 - Ian Kelling
4
你忘记了吗?那有点没用。你能不能花一秒钟看看你的程序? - JohnB
1个回答

4

今天我花了很多时间查看MSDN文档和其他线程,以寻找答案。我决定实现的方法是在绑定到DataGrid的集合中的对象中绑定一个属性(我创建的属性)来表示行号。例如:

public class myItem
{
    public int LineNumber { get; set; }
    // rest of your object...
}

您需要手动设置对象中的行号。

另一种添加行号的方法可以在此处找到。以下是代码:

datagrid.LoadingRow += 
    new EventHandler<DataGridRowEventArgs>(datagrid_LoadingRow);

...
void datagrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
    e.Row.Header = e.Row.GetIndex();
}

这个实现方式将行号放在行头中,不需要您在对象中添加仅用于行号的属性。但是,如果您需要在数据表格中插入或删除一行,则行号将不会更新。


1
第二个不起作用。当我们上下滚动时,所有标题值都会被打乱。这是由于DataGrid的内部行为以提高性能。 - Gopinath
请参考以下讨论: https://dev59.com/C2445IYBdhLWcg3w3N0f#GE0EoYgBc1ULPQZFY8Yw 了解在不同版本的DataGrid上,基于虚拟化设置,为什么这可能有效或无效。 - Tony
如果您正在使用MSSQL Server 2005+,可以尝试:http://msdn.microsoft.com/en-us/library/ms186734.aspx - nvcnvn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接