Я определил вложенное свойство для Selector типа BindingExpression, чтобы перехватить привязку, чтобы можно было клонировать ее по нескольким свойствам. Присоединенное свойство прекрасно работает, когда селектор определен непосредственно в XAML. Однако, когда селектор определен внутри DataTemplate, обработчик измененного свойства никогда не запускается.
Недвижимость
public static readonly DependencyProperty EnumBindingProperty = DependencyProperty.RegisterAttached(
"EnumBinding", typeof(BindingExpression), typeof(SelectorHelper),
new PropertyMetadata(null, OnEnumBindingChanged));
Использование (действительное)
<ComboBox AttachedProperties:SelectorHelper.EnumBinding="{Binding Phase}" />
Использование (недействительно)
<DataTemplate>
<ComboBox AttachedProperties:SelectorHelper.EnumBinding="{Binding Phase}" />
</DataTemplate>
Кажется, что это проблема синхронизации, потому что я обнаружил, что если я использую Snoop для оценки свойства, он автоматически обновляется и начинает работать.
Любая помощь или объяснение будет с благодарностью. :)