WPF DataGridの表示行数を取得
Windowの高さが変更されることで、DataGridの高さが変わり、表示できる行数が変わりますが、この表示行数を取得したいと思います。
サイズ変更イベントに書きました。
''' <summary>
''' サイズ変更
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub Window_SizeChanged(sender As Object, e As SizeChangedEventArgs) Handles MyBase.SizeChanged, MyBase.SizeChanged
'表示行数を取得
If GridList.Items.Count > 0 Then
GridList.UpdateLayout()
Dim VisibleRows As Integer = 0
For Each Item In GridList.Items
Dim Row As DataGridRow = CType(GridList.ItemContainerGenerator.ContainerFromItem(Item), DataGridRow)
If Not IsNothing(Row) Then
If Row.TransformToVisual(GridList).Transform(New Point(0, 0)).Y + Row.ActualHeight >= GridList.ActualHeight Then
Exit For
End If
VisibleRows += 1
End If
Next
Console.WriteLine("表示行数:" & VisibleRows)
End If
End Sub
GridListはDataGridの名前です。VisibleRowsが行数となります。