2022年2月19日

【WPF】 DataGridの表示行数を取得 VB.NET

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が行数となります。

Share this content: