我有一个控件,它继承自WPF类ButtonBase(System.Windows.Controls.Primitives.ButtonBase)。
我想定义一个函数,当基类中的IsEnabled属性发生变化时将调用该函数。
我可能真的很蠢,但我找不到一个简单的方法。 (没有可以覆盖的函数OnIsEnabledChanged函数。)
答案 0 :(得分:1)
IsEnabled是依赖属性。 所以你必须覆盖元数据,就像这里:
public class MyButton : Button
{
static MyButton()
{
MyButton.IsEnabledProperty.OverrideMetadata(typeof(MyButton),
new FrameworkPropertyMetadata(string.Empty,
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault |
FrameworkPropertyMetadataOptions.Journal,
FunctionToCallOnPropertyChange, //property changed callback
null, // coerce value callback
true, // is animation prohibited
UpdateSourceTrigger.LostFocus));
}
private static void FunctionToCallOnPropertyChange(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
throw new NotImplementedException();
}
}