C# 在运行时将变量传递给方法

C# 在运行时将变量传递给方法,c#,windows-runtime,windows-store-apps,winrt-xaml,bing-maps,C#,Windows Runtime,Windows Store Apps,Winrt Xaml,Bing Maps,我正在开发一个windows应用商店应用程序。在我的应用程序中,我想在运行时为pushpin.tapped事件创建一个pushpin和一个方法。我的目标是将一个变量传递给puhpin_Tapped方法,并通过消息对话框显示该变量的值。这是我的密码: Pushpin pushpin = new Pushpin(); pushpin.Background = new SolidColorBrush(Colors.Blue); MapLayer.SetPosition(push

我正在开发一个windows应用商店应用程序。在我的应用程序中,我想在运行时为pushpin.tapped事件创建一个pushpin和一个方法。我的目标是将一个变量传递给puhpin_Tapped方法,并通过消息对话框显示该变量的值。这是我的密码:

    Pushpin pushpin = new Pushpin();
    pushpin.Background = new SolidColorBrush(Colors.Blue);
    MapLayer.SetPosition(pushpin, loc);
    pushpin.Name = sd.name;
    pushpin.Tapped +=pushpin_Tapped(pushpin.Name);
    map.Children.Add(pushpin);
这是我的图钉敲击法:

    private async void pushpin_Tapped(string _name)
    {
        MessageDialog myMessage = new MessageDialog(_name);
        await myMessage.ShowAsync();
    }
但是,当我编写这些代码块时,出现了一个错误,即“无法将类型'void'隐式转换为'Windows.UI.Xaml.Input.TappedEventHandler'”,在“pushpin_Tapped(pushpin.Name)”下面画一条红线

那么我做错了什么呢?谢谢……

试试这个

private async void pushpin_Tapped(object sender, TappedRoutedEventArgs e)
     {
        MessageDialog myMessage = new MessageDialog(pushpin.Name);
        await myMessage.ShowAsync();
     }
private async void pushpin_Tapped(object sender, TappedRoutedEventArgs e)
{
    MessageDialog myMessage = new MessageDialog(((Pushpin)sender).Name);
    await myMessage.ShowAsync();
}

不幸的是,这不起作用,因为我在一个方法中定义了“pushpin”变量。未定义,无法在其他方法中使用。Eventhandler应具有模式(sender、eventargs)。但是您可以使用(null,null)调用它。为了传递参数pushpin.Name,也许您必须声明类变量……甚至不需要类变量。我在Pushpin_Tapped方法的顶部添加了语句“var tappedPin=sender as Pushpin;”,现在它可以正常工作了。谢谢你的建议。