执行一个方法

本文关键字:一个 方法 执行 | 更新日期: 2023-09-27 18:08:16

目标:
当您在listView中右键单击名为"Delete"的菜单按钮时,应执行名为Test((的方法。

问题:
我不能让它发生,因为我收到了一个错误消息。

错误1"Test"没有与委托匹配的重载"System.Windows.RoutedEventHandler">

private void lvw_bokade_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
    ListView selectedData = (ListView)sender;
    Passlista myPasslista = (Passlista)selectedData.SelectedItem;
    System.Windows.Point pt = e.GetPosition(this);
    if (myPasslista != null && !(System.Windows.Media.VisualTreeHelper.HitTest(this, pt).VisualHit is ScrollViewer))
    {
        ContextMenu myContextMenu = new ContextMenu();
        MenuItem menuItem2 = new MenuItem();
        menuItem2.Header = "Delete";
        myContextMenu.Items.Add(menuItem2);
        menuItem2.Click += new RoutedEventHandler(Test);
        myContextMenu.IsOpen = true;
    }
}

private void Test()
{
    MessageBox.Show("ssss");
}

执行一个方法

更改方法的签名以匹配RoutedEventHandler:的委托

private void Test(object sender, RoutedEventArgs e)
{
    MessageBox.Show("ssss");
}

代表的签名看起来像这样,根据MSDN:

public delegate void RoutedEventHandler(
    Object sender,
    RoutedEventArgs e
)

您的方法需要匹配此delegate:

public delegate void RoutedEventHandler(
    Object sender,
    RoutedEventArgs e
)

您需要将其更改为:

private void Test(object sender, RoutedEventArgs e)
{
   MessageBox.Show("ssss");    
}

将方法测试的签名更改为:

private void Test(object sender, RoutedEventArgs e)