[英]how to create custom event for my property
我有一個自定義控件的屬性。
現在,我想為我的媒體資源創建一個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));
照常定義一個事件(如果有意義,可以將其定義為路由事件 ),然后在引發該事件的位置注冊依賴項屬性回調。 像這樣:
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
類的東西派生。 這只是當依賴項屬性更改時如何引發自定義事件的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.