Несколько возможных вариантов: 1) В привязке внутри DataTemplate задайте в качестве источника родительский элемент, используя ElementName, и выполните привязку, используя OneWayToSource.Это перенесет значение из цели привязки (элемент внутри DataTemplate) в источник привязки (родительский элемент управления). 2) Используйте общий объект, с которым связаны и DataTemplate, и элемент управления.DataTemplate будет привязываться к нему с помощью OneWayToSource, а элемент управления будет привязываться к нему с помощью OneWay.Это может быть даже ресурс, поэтому вы можете получить к нему доступ из XAML.3) Используйте RelativeSource и FindAncestor.4) Используйте какое-то перенаправленное событие и обработайте его на уровне управления.Он будет запущен из шаблона данных с помощью прикрепленного поведения (Google!).Событие доставит данные, а обработчик события установит соответствующее свойство в элементе управления.
Параметры 1,3 аналогичны предложенным вами.Варианты 2, 4 разные.С точки зрения элегантности я предпочитаю вариант 2.
Кроме того - будьте в курсе конфликтов во всех решениях.Если DataTemplate создается много раз внутри одного элемента управления, все экземпляры будут пытаться установить свойство элемента управления.Эффект будет эффектом последней выполненной попытки набора, и в некоторых случаях это может быть проблематично, если вы не можете контролировать их порядок.
Алекс.