I would like to have something like a resizable Expander. My basic idea was something like this:
Maybe this will help to solve your "column collapse" problem
XAML:
Add in Name="expGrid"
and add in Collapsed="Expander_Collapsed"
C# Code:
private void Expander_Collapsed(object sender, RoutedEventArgs e)
{
var colomnIndex = Grid.GetColumn(sender as Expander);
var colomn = expGrid.ColumnDefinitions[colomnIndex];
colomn.Width = GridLength.Auto;
}