2014-06-12 104 views
-3

目标:
当您在名称为“删除”的菜单按钮上点击listView时,应该执行名为Test()的方法。执行方法

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

错误1,没有超载的 '测试' 匹配委托 '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"); 
} 
+2

当你得到这样的错误时,你应该做的第一件事做的是将其复制并粘贴到搜索引擎中。如果你这样做了,那么你会立即找到几十个答案。 – Sheridan

回答

3

改变你的方法的签名相匹配的RoutedEventHandler委托:

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

根据MSDN,代表的签名如下所示:

public delegate void RoutedEventHandler(
    Object sender, 
    RoutedEventArgs e 
) 
3

你的方法需要符合这个delegate

public delegate void RoutedEventHandler(
    Object sender, 
    RoutedEventArgs e 
) 

您需要将其更改为:该方法测试的签名

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

变化:

private void Test(object sender, RoutedEventArgs e)