Оказавшись внутри шаблона, вы как бы изолированы от других элементов (по уважительной причине - его можно использовать в другом месте). В этом случае (при условии, что шаблон используется где-то под «MainGrid»), похоже, что вы можете использовать привязку RelativeSource FindAncestor для определения местоположения родительской сетки (вам нужно обязательно подсчитать сетки в VisualTree, чтобы получить правильный AncestorLevel - только в коде здесь было бы 2). Путь будет ColumnDefinitions [1] .Width. Помните, что это зависит от того, сохраняете ли вы структуру элементов, в которых вы используете шаблон, поэтому он немного хрупок. Существует также альтернативный метод, использующий SharedSizeGroup, который может соединять строки или столбцы сетки на разных уровнях, но работает только с автоматическим и фиксированным размером пикселей. Этот метод связывания работает с фиксированными и * размерами.
Вся привязка:
Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}, AncestorLevel=2}, Path=ColumnDefinitions[1].Width}"