Да, сложные Сетки могут быть раздражающими, чтобы измениться.Вот несколько мыслей и идей для вас.
Если вы используете Expression Blend и вставляете строку или столбец, используя синие полосы в артборде, Blend попытается сделать это за вас.Он работает с разной степенью успеха, в основном в зависимости от количества элементов управления, которые перекрывают строки привязки новой строки или столбца.Для получения наилучших результатов увеличьте масштаб артборда и добавьте новую линию привязки очень близко к строке выше или столбцу слева.
На этом этапе вам еще предстоит много работы по очистке, но свойства Grid.Row и Grid.Column будут корректно настроены.Корректировка размеров строк и столбцов - один из немногих случаев, когда я выбираю ручное редактирование XAML, поэтому вы, вероятно, быстрее исправите эти значения вручную.
Если создаются нечетные поля (как это часто бывает), выМожно сразу выбрать все затронутые свойства и сбросить поля в массовом порядке.
Вероятно, лучший совет - рассмотреть возможность использования другого элемента управления.Если вы постоянно перестраиваете содержимое Grid, возможно, вам лучше использовать DockPanel.Вы можете получить результат, подобный сетке, добавив элементы (сетки), прикрепленные к вершине, и привязав высоту строки или столбца к ресурсу:
<UserControl.Resources>
<GridLength x:Key="StandardColumnHeight">32</GridLength>
</UserControl.Resources>
Теперь вы можете привязать ширину ColumnDefinition к статическому ресурсу, обеспечиваявсе они имеют одинаковую ширину (конечно, это также может работать с шириной столбцов).
<ColumnDefinition Width="{StaticResource StandardColumnHeight}"/>
Если вы определяете каждую из последующих Grid, используя один и тот же набор ColumnDefinitions (еще один быстрый XAML-copy-n-paste)job).
Первоначальная настройка может потребовать дополнительных усилий, но вставка новой строки в DockPanel является простым вопросом порядка XAML и не требует такой большой работы.