当我引用完全相同的KeyDown事件时,为什么从XAML获取KeyEventArgs而从C#获取RoutedEventArgs?

时间:2015-06-06 01:11:58

标签: wpf xaml events

这一定很简单,但我似乎无法轻易谷歌。

e.g。 blah.KeyDown += (s, r) => TextboxKEYDOWN(s, e);

现在C#可以使用KeyEventArgs可用的事件函数

但如果我用C#"undefined alias or unknown mapping: Shop [from Shop.dbo.Sales s where s.Customer = :customer_id and s.date between :start_date and :end_date order by s.date desc]"

然后TextboxKEYDOWN只获取RoutedEventArgs并抱怨它无法将KeyEventArgs强制转换为它。

为什么这样,只能从C#正常使用?

PS。我觉得这太简单了。

1 个答案:

答案 0 :(得分:1)

那是因为

blah.KeyDown += (s, r) => TextboxKEYDOWN(s, e);

r显然与e不完全相同(不知道代码示例中的e是什么)。

但是你应该能够把它写成

blah.KeyDown += TextboxKEYDOWN;

处理程序方法应该如下所示

private void TextboxKEYDOWN(object sender, KeyEventArgs e)
{
    ...
}