Возможно, вы не справляетесь с перегрузкой XAML. Кажется, что большинство разработчиков, начиная с WPF или Silverlight, считают, что в XAML должно быть все, что может быть в XAML. Затем они достигают точки, где они борются с XAML, чтобы сделать что-то, что потребовало бы мгновений в коде (я тоже затронул его проблему).
Если вы находите что-то громоздкое или безобразное в XAML, подумайте о том, чтобы написать это в коде. Это не преступление. Вероятно, вы можете объявить один метод для создания вашей раскадровки и затем использовать его несколько раз, или вы можете создать класс, который обернет вашу раскадровку и добавит несколько экземпляров в XAML намного более точными способами. Поскольку вы совершенно правильно определили к концу своего поста, есть несколько способов сделать его чище, вам просто нужно решить, какой из них подходит вашей ситуации.
Без какого-либо примера XAML трудно визуализировать точную проблему, с которой вы столкнулись, поэтому я не мог дать четкую рекомендацию, но надеюсь, что это поможет. Мне нравится звук ваших ударов - изображение, которое у меня есть в голове, действительно очень хорошее.