【问题标题】:uwp c# pass additional parameter to an navigationview event handler while binding the event at runtimeuwp c#在运行时绑定事件时将附加参数传递给navigationview事件处理程序
【发布时间】:2020-09-08 03:31:25
【问题描述】:

我有一个导航视图,我想将额外的参数传递给 selection_changed 事件

MUXC.NavigationView navigationview = new MUXC.NavigationView();
navigationview.SelectionChanged += new EventHandler((s, e) => Navigationview_SelectionChanged(s, e, param));

上述代码出错

无法将类型“System.Eventhandler”隐式转换为 'Windows.Foundation.TypedEventHandler'

【问题讨论】:

    标签: c# uwp event-handling arguments


    【解决方案1】:

    附加事件时,一般不需要new一个EventHandler,因为NavigationView.SelectionChanged的类型是TypedEventHandler,直接赋值会导致类型不匹配。

    如果你创建一个SelectionChanged事件句柄方法,你可以像这样附加它:

    var navigationview = new muxc.NavigationView();
    navigationview.SelectionChanged += Navigationview_SelectionChanged;
    
    private void Navigationview_SelectionChanged(muxc.NavigationView sender, muxc.NavigationViewSelectionChangedEventArgs args)
    {
        // Do something...
    }
    

    从您的代码中,您似乎创建了一个带有三个参数的方法。如果您需要保留param,则需要执行一些转换。

    navigationview.SelectionChanged += (_s, _e) =>
    {
        Navigationview_SelectionChanged(_s, _e, param);
    };
    

    【讨论】:

      猜你喜欢
      • 2013-08-16
      • 2014-05-17
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      相关资源
      最近更新 更多