为了账号安全,请及时绑定邮箱和手机立即绑定

如何为我的财产创建自定义事件

如何为我的财产创建自定义事件

C#
慕森王 2023-08-20 15:15:47
我有一个用于自定义控件的属性。现在我想为我的财产创建一个ValueChanged活动。(我的属性不需要回调,因为我希望用户可以使用此事件) public double Value {    get { return (double)GetValue(ValueProperty); }    set { SetValue(ValueProperty, value); } } public static readonly DependencyProperty ValueProperty =        DependencyProperty.Register("Value",         typeof(double), typeof(SpeedoMeter),         new PropertyMetadata(0.0, null, OnCoerceValueChanged));
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

像往常一样定义一个事件(如果有意义的话,可以将其定义为路由事件),然后在引发该事件的地方注册一个依赖属性回调。像这样的东西:

public event EventHandler ValueChanged;


public double Value

{

    get { return (double)GetValue(ValueProperty); }

    set { SetValue(ValueProperty, value); }

}


public static readonly DependencyProperty ValueProperty =

    DependencyProperty.Register("Value", typeof(double), typeof(SpeedoMeter), new PropertyMetadata(0.0,

        OnChanged,

        OnCoerceValueChanged));


private static void OnChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)

{

    SpeedoMeter speedoMeter = (SpeedoMeter)d;

    EventHandler handler = speedoMeter.ValueChanged;

    if (handler != null)

    {

        handler(speedoMeter, EventArgs.Empty);

    }

}

显然,您可以随意命名您的活动和财产。例如,如果您拥有Value财产并想要举办ValueChanged活动,您可以从类似RangeBase或类似的事物中获得。这只是当依赖项属性更改时如何引发自定义事件的示例。


查看完整回答
反对 回复 2023-08-20
  • 1 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信