'MouseDoubleClick方法'没有重载匹配委托'System.Windows.Input.MouseButtonEventHandler'

时间:2014-09-04 09:09:28

标签: c# wpf linq events overloading

我在ListBoxItem上创建了一个事件MouseDoubleClick,如下所示:

<ListBox>
    <ListBoxItem content="Ajouts" Name="Ajouts" MouseDoubleClick="Ajout_MouseDoubleClick"/>

事件双击执行&#34;选择从哪里&#34;在使用LinQ制作的Table Resultat上,如下所示:

private void Ajout_MouseDoubleClick(object sender, MouseButtonEventArgs e, DBSet<Resultat> res)
{
    var add = from a in res
              where a.Remarque.Equals("Ajoute")
              select new { a.Groupe_D_alerte, a.Remarque }
}

我收到了错误

  

Ajout_MouseDoubleClick&#39; Ajout_MouseDoubleClick&#39;匹配代表   System.Windows.Input.MouseButtonEventHandler&#39;

我有对象发件人,如果我用MouseButtonEventArgsSystem.EventArgs替换EventArgs,我会遇到同样的错误,在xaml端检测到错误。

1 个答案:

答案 0 :(得分:3)

MouseButtonEventHandler委托只能“指向”与其签名

匹配的方法
public delegate void MouseButtonEventHandler(Object sender,MouseButtonEventArgs e)

http://msdn.microsoft.com/en-us/library/system.windows.input.mousebuttoneventhandler(v=vs.110).aspx

如果您需要DbSet,则必须使用其他方法来获取它(私有字段或其他内容)

private void Ajout_MouseDoubleClick(object sender, MouseButtonEventArgs e, )
{
    DBSet<Resultat> res=YourDbContext.Resultats;
    var add = from a in res
          where a.Remarque.Equals("Ajoute")
          select new { a.Groupe_D_alerte, a.Remarque }
}