簡體   English   中英

在UWP模板控件中注冊RoutedEventHandler

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM