You can use attached properties for a Grid
that modify the RowDefinitions
and ColumnDefinitions
when those properties are set or changed.
It will allow you to write your Grid
like this:
<Grid local:GridHelpers.RowCount="{Binding MaxGridRow}"
local:GridHelpers.ColumnCount="3" />
Then just expose a property from your ViewModel
which returns the largest row number in the Cells
collection.
You can find a detailed implementation of those properties on my blog.