This is the explanation from our Silverlight Grid's team leader:
To understand the reason why the exception is throw, we must first understand some of the mechanics of rendering. The "technical" reason is that the "measure" pass is made with a "infinite" height or width in the StackPanel (or in your case, the dock panel). Since the grid can contains a lot of rows (ie. 1000 000 rows), the grid would be rendered considering about 10 000 000 pixels height of screen estate.
Try it with the Microsoft DataGrid. The grid is "chopped" and no scrollbar appear. This give the feeling that all rows are displayed on screen, but it is not the case. Xceed made the choice of throwing an exception in order to inform the developer that there is a potential mis-behavior of your component.
If your case is that the grid never display more than about 10-20 rows height, set the With and Height of your grid accordingly like this:
<sldg:DataGridControl x:Name="dataGrid" With="200" Height="200" >
I understand that this is not the "fill" behavior you are expecting, but there is no other way to handle this in containers like the StackPanel.
Xceed Software Inc