将PropertyChangedCallback添加到基类的只读依赖项属性中



我需要将属性更改的回调方法注册到菜单项的IsHighlighted属性
但在执行时,我得到一个异常,表示IsHighlighted注册为只读。

有没有添加回调方法的想法,或者有没有其他方法可以检查属性的更改?

public class MyMenuItem : MenuItem
{
static MyMenuItem()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyMenuItem),
new FrameworkPropertyMetadata(typeof(MyMenuItem)));

/* IsHighlighted was registered as readonly and is not possible 
override metadata without an authorization key. */
IsHighlightedProperty.OverrideMetadata(typeof(MyMenuItem),
new FrameworkPropertyMetadata(false, new PropertyChangedCallback(OnIsHighlightedChanged)));
}
private static void OnIsHighlightedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
}
}

我已经使用DependencyPropertyDescriptor进行了解析。

DependencyPropertyDescriptor.FromProperty(IsHighlightedProperty, typeof(MyMenuItem))
?.AddValueChanged(this, (s, e) => OnHighlightChanged(IsHighlighted));

相关内容

  • 没有找到相关文章

最新更新