Skip to content

Commit a381160

Browse files
Addressed the Concern
1 parent a4a6c92 commit a381160

1 file changed

Lines changed: 55 additions & 22 deletions

File tree

README.md

Lines changed: 55 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,69 @@
11
# How to to display the RowIndex in GridRowHeaderCell when combined with SfDatapager in WPF DataGrid
22

3-
Your requirement is to display row numbers in the GridRowHeaderCell. This functionality can be achieved by customizing the RowHeaderCell style with the binding of RowIndex to the TextBlock.Text property then using a MultiValueConverter and handling the PageIndexChanged event in SfDataPager, as demonstrated below:
3+
You can display row numbers in the GridRowHeaderCell by customizing the RowHeaderCell style. This can be achieved by binding the RowIndex to the TextBlock.Text property and using a MultiValueConverter. Additionally, you can handle the PageIndexChanged event in SfDataPager. This is demonstrated below.
4+
5+
6+
```XML
7+
<Style TargetType="syncfusion:GridRowHeaderCell">
8+
<Setter Property="Template">
9+
<Setter.Value>
10+
<ControlTemplate TargetType="syncfusion:GridRowHeaderCell">
11+
<Border x:Name="PART_RowHeaderCellBorder"
12+
Background="Blue"
13+
BorderBrush="{TemplateBinding BorderBrush}"
14+
BorderThickness="{TemplateBinding BorderThickness}">
15+
<Grid>
16+
<!--//RowIndex is displayed here-->
17+
<TextBlock HorizontalAlignment="Center"
18+
VerticalAlignment="Center"
19+
Foreground="White"
20+
TextAlignment="Center" >
21+
<TextBlock.Text>
22+
<MultiBinding Converter="{StaticResource rowIndexConverter}" >
23+
<Binding Path="RowIndex" RelativeSource="{RelativeSource TemplatedParent}"/>
24+
<Binding ElementName="dataGrid" />
25+
<Binding ElementName="dataPager" />
26+
</MultiBinding>
27+
</TextBlock.Text>
28+
</TextBlock>
29+
</Grid>
30+
</Border>
31+
</ControlTemplate>
32+
</Setter.Value>
33+
</Setter>
34+
</Style>
35+
36+
```
437

538

639
```C#
740

8-
private void SfDataPager_PageIndexChanged(object sender, PageIndexChangedEventArgs e)
9-
{
10-
for (int i = 1; i &lt; dataGrid.RowGenerator.Items.Count; i++)
11-
{
12-
var rowHeaderCell = ((dataGrid.RowGenerator.Items[i] as DataRow).VisibleColumns[0] as DataColumn).ColumnElement;
13-
(rowHeaderCell as GridRowHeaderCell).RowIndex = -1;
14-
}
15-
}
41+
private void OnPageIndexChanged(object sender, PageIndexChangedEventArgs e)
42+
{
43+
for (int i = 1; i < dataGrid.RowGenerator.Items.Count; i++)
44+
{
45+
var rowHeaderCell = ((dataGrid.RowGenerator.Items[i] as DataRow).VisibleColumns[0] as DataColumn).ColumnElement;
46+
(rowHeaderCell as GridRowHeaderCell).RowIndex = -1;
47+
}
48+
}
49+
1650

1751
```
1852

1953
```C#
2054

21-
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
22-
{
23-
var dataPager = values[2] as SfDataPager;
24-
25-
if (dataPager.PageIndex == 0 || (int)values[0] == -1)
26-
{
27-
return values[0].ToString();
28-
}
29-
30-
values[0] = (int)values[0] + (((dataPager.PageIndex + 1) - 1) * dataPager.PageSize);
31-
return values[0].ToString();
32-
33-
}
55+
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
56+
{
57+
var dataPager = values[2] as SfDataPager;
58+
59+
if (dataPager.PageIndex == 0 || (int)values[0] == -1)
60+
{
61+
return values[0].ToString();
62+
}
63+
64+
values[0] = (int)values[0] + (((dataPager.PageIndex + 1) - 1) * dataPager.PageSize);
65+
return values[0].ToString();
66+
}
3467

3568
```
3669

0 commit comments

Comments
 (0)