亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何為我的財產創建自定義事件

如何為我的財產創建自定義事件

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條經驗 獲得超8個贊

像往常一樣定義一個事件(如果有意義的話,可以將其定義為路由事件),然后在引發該事件的地方注冊一個依賴屬性回調。像這樣的東西:

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 關注
  • 139 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號