如何显示wpf toolkit datagrid的行索引?

时间:2010-01-11 10:28:41

标签: wpf datagrid wpfdatagrid wpftoolkit

我只想在wpf toolkit DataGrid中添加一个索引列,以显示DataGrid中每个数据的行索引。怎么样?

<dg:DataGrid ItemsSource="{Binding List}"                              
             SelectionMode="Extended"
             IsReadOnly="True"
             AutoGenerateColumns="False"
             HorizontalAlignment="Left">
    <dg:DataGrid.Columns>

        **<dg:DataGridTextColumn Header="Row Index"></dg:DataGridTextColumn>**
        <dg:DataGridTextColumn Header="Branch"
                               Binding="{Binding Branch.Id}"></dg:DataGridTextColumn>
        <dg:DataGridTextColumn Header="Count"
                               Binding="{Binding RequestCount}"></dg:DataGridTextColumn>
    </dg:DataGrid.Columns>
</dg:DataGrid>

3 个答案:

答案 0 :(得分:4)

我目前没有代码示例,但是根据this post,您可以附加“可以附加的LoadingRow事件。如果您可以每次都根据需要设置标题关于事件args中的项目。“

这是我能找到的唯一方法。似乎没有一个优雅的XAML解决方案。

答案 1 :(得分:4)

您可以使用多重绑定和转换器绑定到行和父数据网格中的项目。然后在转换器中查找d​​atagrids项中行的位置。

this page下载示例WPFDatagridWithRowNumbers.zip

享受!

答案 2 :(得分:2)

忘记多重绑定和转换器。您可以在XAML中完全执行此操作。

首先,将数据网格的AlternationCount属性绑定到集合的count属性,或绑定到DataGrid的Items.Count属性,如下所示:

<dg:DataGrid AlternationCount="{Binding List.Count}" />

或者:

<dg:DataGrid AlternationCount="{Binding Items.Count, RelativeSource={RelativeSource Self}" />

要么应该工作。

然后,假设您在最左侧的列中使用DataGridTextColumn,则在DataGrid.Columns定义中执行以下操作:

<dg:DataGrid.Columns>
   <dg:DataGridTextColumn Binding="{Binding AlternationIndex, RelativeSource={RelativeSource AncestorType=DataGridRow}}"
</dg:DataGrid.Columns>

如果您不想从0开始,可以在备用索引绑定中添加转换器以增加索引。