我已经为 BindingExpression 类型的 Selector 定义了一个附加属性,以便捕获一个绑定,这样我就可以将它克隆到多个属性上。当 Selector 直接在 XAML 中定义时,附加属性可以正常工作。但是,当在 DataTemplate 中定义 Selector 时,属性更改处理程序永远不会被触发。
附加属性
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 来评估属性,它会自动刷新并开始工作。
任何帮助或解释将不胜感激。:)