В основном вам нужен пользовательский элемент управления текстовым блоком, который отображает не более 3 строк и показывает кнопку «больше» (если текст содержит более 3 строк) *.
Чем больше кнопка расширяет текстовый блок, и Я думаю, что остается, чтобы свернуть его снова ?
Поскольку у вас есть только один столбец (больше похожий на список), вместо настройки сетки данных создайте usercontrol (с сеткой, текстовым блоком и кнопкой), который делает то, что вы хотите, и связываете это вместо этого в шаблонном столбце.
Вам нужно будет выставить свойство Text как свойство зависимости, к которому оно будет привязано. Большая часть деталей создания такого типа usercontrol содержится в моем ответе на этот вопрос: помещение Button внутри TextBlock (или, возможно, чего-то еще), чтобы он работал так же, как на видео?
Просто добавьте логику размера и измените макет в соответствии с вашими потребностями.
* Примечание. Лично я бы использовал свойство MinHeight в usercontrol для установки, когда требуется кнопка «Дополнительно», тогда она будет более гибкой, но это всего лишь предложение.