In the end, I concluded there was no easy out, so I created a subclass of Grid
tailored to be placed inside an ItemsControl
's ItemsPanel
(With IsItemsHost = "True"
), and which would dynamically modify the ColumnDefinitions/RowDefinitions by using GetItemsOwner
and GetItemsSource
to get the weights of each collection item and setting the width/height of the definitions to that weight with GridUnitType_Star
.