我只想在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>
答案 0 :(得分:4)
我目前没有代码示例,但是根据this post,您可以附加“可以附加的LoadingRow事件。如果您可以每次都根据需要设置标题关于事件args中的项目。“
这是我能找到的唯一方法。似乎没有一个优雅的XAML解决方案。
答案 1 :(得分:4)
您可以使用多重绑定和转换器绑定到行和父数据网格中的项目。然后在转换器中查找datagrids项中行的位置。
在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开始,可以在备用索引绑定中添加转换器以增加索引。