[英]Registering RoutedEventHandler in UWP template control
我很難找到如何在UWP中注冊RoutedEventHandler。 我正在嘗試編寫具有類似於ContentDialog的事件屬性的模板控件:
PrimaryButtonClick="ClickEvent"
ClickEvent在cs文件中定義的位置。 我只是想了解模板,但我相信我想做這樣的事情:
<Button Content="{TemplateBinding PrimaryButtonText}" Click="{TemplateBinding PrimaryButtonClick}"/>
目前,我所能找到的就是對此類型代碼的WPF版本的引用:
public static readonly RoutedEvent ValueChangedEvent =
EventManager.RegisterRoutedEvent("ValueChanged",
RoutingStrategy.Direct, typeof(RoutedPropertyChangedEventHandler<double>),
typeof(NumericBox));
public event RoutedPropertyChangedEventHandler<double> ValueChanged
{
add { AddHandler(ValueChangedEvent, value); }
remove { RemoveHandler(ValueChangedEvent, value); }
}
private void OnValueChanged(double oldValue, double newValue)
{
RoutedPropertyChangedEventArgs<double> args =
new RoutedPropertyChangedEventArgs<double>(oldValue, newValue);
args.RoutedEvent = NumericBox.ValueChangedEvent;
RaiseEvent(args);
}
但是當然類型已經改變。 有人可以指出我正確的方向嗎?
不幸的是, RoutedEvent
(冒泡,隧道)的概念目前在UWP中不可用。 您可以創建一個經典事件,但是:
public event EventHandler PrimaryButtonClick;
protected void InnerButton_Click(object sender, EventArgs e)
{
PrimaryButtonClick?.Invoke( sender, e );
}
對於某些預定義事件,可以對事件進行冒泡,但是在當前版本的UWP中,尚不能對自定義事件進行冒泡。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.