Xaml 在UWP模板控件中注册RoutedEventHandler

Xaml 在UWP模板控件中注册RoutedEventHandler,xaml,uwp,routed-events,template-control,Xaml,Uwp,Routed Events,Template Control,我很难找到如何在UWP中注册RoutedEventHandler。我正在尝试编写一个模板控件,该控件具有与ContentDialog类似的事件属性: PrimaryButtonClick="ClickEvent" 其中,在cs文件中定义了ClickEvent。我只是刚刚掌握了模板的诀窍,但我相信我想做一些类似这样的事情: <Button Content="{TemplateBinding PrimaryButtonText}" Click="{TemplateBinding Primar

我很难找到如何在UWP中注册RoutedEventHandler。我正在尝试编写一个模板控件,该控件具有与ContentDialog类似的事件属性:

PrimaryButtonClick="ClickEvent"
其中,在cs文件中定义了ClickEvent。我只是刚刚掌握了模板的诀窍,但我相信我想做一些类似这样的事情:

<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);
    }
public静态只读路由事件值changedevent=
EventManager.RegisterRoutedEvent(“ValueChanged”,
RoutingStrategy.Direct,类型(RoutedPropertyChangedEventHandler),
类型(数字框);
公共事件RoutedPropertyChangedEventHandler值已更改
{
添加{AddHandler(ValueChangedEvent,value);}
删除{RemoveHandler(ValueChangedEvent,value);}
}
私有void OnValueChanged(双旧值、双新值)
{
RoutedPropertyChangedEventArgs参数=
新RoutedPropertyChangedEventArgs(旧值、新值);
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中尚不可能允许自定义事件冒泡。

不幸的是,
RoutedEvent
(冒泡、隧道)的概念目前在UWP中不可用。但是,您可以只创建一个经典事件:

public event EventHandler PrimaryButtonClick;

protected void InnerButton_Click(object sender, EventArgs e)
{
    PrimaryButtonClick?.Invoke( sender, e );              
}

某些预定义事件可以冒泡,但在当前版本的UWP中还不能允许自定义事件冒泡。

路由事件确实存在于UWP中。但就目前而言,它们并不像WPF中那样完整。例如,冒泡是可用的,但隧道是不可用的。如果为True,则以冒泡的形式出现。但我的意思是更具体地说,没有类似于
RoutedEvent
-的类型可用。没有RoutedEvent类型,好的。要明确预定义的UWP UI事件从孩子到家长冒泡,您的答案是正确的,应该标记为解决方案。我已经更新了我的答案,以提及冒泡:-)谢谢先生:-!)!路由事件确实存在于UWP中。但就目前而言,它们并不像WPF中那样完整。例如,冒泡是可用的,但隧道是不可用的。如果为True,则以冒泡的形式出现。但我的意思是更具体地说,没有类似于
RoutedEvent
-的类型可用。没有RoutedEvent类型,好的。要明确预定义的UWP UI事件从孩子到家长冒泡,您的答案是正确的,应该标记为解决方案。我已经更新了我的答案,以提及冒泡:-)谢谢先生:-!)!