目标:
当您按下名为"删除"的菜单按钮时当你在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");
}
答案 0 :(得分:3)
更改方法的签名以匹配RoutedEventHandler
的代理:
private void Test(object sender, RoutedEventArgs e)
{
MessageBox.Show("ssss");
}
根据MSDN:
,代表的签名如下所示public delegate void RoutedEventHandler(
Object sender,
RoutedEventArgs e
)
答案 1 :(得分:3)
您的方法需要与此delegate
匹配:
public delegate void RoutedEventHandler(
Object sender,
RoutedEventArgs e
)
您需要将其更改为:
private void Test(object sender, RoutedEventArgs e)
{
MessageBox.Show("ssss");
}
答案 2 :(得分:-2)
将方法测试的签名更改为:
private void Test(object sender, RoutedEventArgs e)