Welcome to Microsoft Q&A!
There is no api can make the datagrid only display whole rows, it depends on the scrolling and row height. If you want to print dataGrid, you could use the PrintHelper class to print the DataGrid, but you still need to manually paging your data in code-behind. You can divide the long dataGrid to many small dataGrid and calculate the maximum number of dataGrid-Items that can display on the screen together and then put them into print-pages. Here is a similar thread, you can refer to it.