Ваш код, вероятно, не будет выполнять то, что вы хотите (по крайней мере, это мое предположение, так как вы не заявляете, что вы действительно хотите).
DataGrid содержит свои собственные полосы прокрутки, и, поместив DataGrid в ScrollViewer, вы скажете DataGrid, чтобы он шел в максимальном размере, без необходимости прокрутки (ScrollViewer позаботится об этом). Таким образом, сетка загрузит и отобразит все ее содержимое.
Желательно избавиться от ScrollViewer, чтобы вы могли использовать правильную технику прокрутки для самой DataGrid. Тогда вы, вероятно, захотите поискать виртуализацию DataGrid (но я не уверен, чего вы действительно хотите достичь, так что это может быть что-то другое).