代码之家  ›  专栏  ›  技术社区  ›  Kraenys

“MouseDoubleClick方法”的重载不匹配委托“System.Windows.Input.MouseButtonEventHandler”

  •  0
  • Kraenys  · 技术社区  · 10 年前

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

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

    双击事件对使用LinQ生成的表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”的重载不匹配委托 System.Windows.Input.MouseButtonEventHandler'

    我有对象发送方,如果替换 MouseButtonEventArgs 具有 System.EventArgs EventArgs ,在xaml侧检测到错误。

    1 回复  |  直到 10 年前
        1
  •  3
  •   George Vovos    10 年前

    MouseButton EventHandler委托只能“指向”与其签名匹配的方法

    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 }
    }