Я пытаюсь перенести приложение Silverlight в Metro и обнаружил, что в моей настройке ControlTemplate моя привязка к {Binding PropertyName, RelativeSource={RelativeSource TemplatedParent}}
не работает, однако {TemplateBinding PropertyName}
делает.Связывание с RelativeSource TemplatedParent не работает в ControlTemplate
Обе эти работы в моем приложении Silverlight, однако мне нужно использовать синтаксис RelativeSource, чтобы разрешить использование Mode=TwoWay
.
Что мне нужно сделать, чтобы использовать привязки TwoWay внутри ControlTemplate?
Я пытаюсь разделить кодовую базу логики управления между SL5, WP7 и Metro, поэтому пыталась сохранить что-либо UI, связанное с ControlTemplate. Тем не менее, я попробовал, как вы предложили, и настроил привязку в моей OnApplyTemplate, однако привязка к TwoWay к ListBox.SelectedItemProperty не работает и не запускает мой PropertyChangedCallback. Возможно, это больше проблема с элементом управления ListBox, чем с чем-либо еще. –
Скраб, я попытался реплицировать это в новом приложении, содержащем только пользовательский ContentControl, и он сработал. Вернуться к доске для рисования! –
Добавление обработчика события SelectionChanged в ListBox и ручное обновление действительно работает. Мне просто нужно взять это в лагерь Win8 dev, на который я отправился на следующую неделю, и посмотреть, что они говорят! –