Вы должны привязать ширину и высоту сетки к одному значению:
<!--Dont forget to specify source where MaxSizeParam lies-->
<Grid Width="{Binding MaxSizeParam}" Height="{Binding MaxSizeParam}"/>
MaxSizeParam вы можете предоставить, где вы хотите, и каким образом вы хотите. Например, если у сетки есть Button, то при событии SizeChanged для Button вам следует пересчитать MaxSizeParam:
void button_SizeChanged(object sender, SizeChangedEventArgs e)
{
MaxSizeParam = e.NewSize.Width > e.NewSize.Height ? e.NewSize.Width : e.NewSize.Height;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("MaxSizeParam"));
}