这是我的代码:
private async void Page_Loaded(object sender, RoutedEventArgs e)
{
i = .../
uc[i].PreviewMouseDown += new MouseButtonEventHandler(UCClick(sender, e, i));
}
private void UCClick(object sender, RoutedEventArgs e, int i)
{
MessageBox.Show(i);
}
i
是Page_Loaded
无效的变量。我只想在UCClick
中使用它,但出现以下错误:
需要使用方法名称!
我是C#的新手,对此我不理解。有人可以帮忙吗?
答案 0 :(得分:1)
最简单的方法是使用lambda表达式:
uc[i].PreviewMouseDown += (sender, e) => UCClick(sender, e, i);
如果需要,您可以添加new MouseButtonEventHandler
,但这毫无意义,因为编译器会为您插入它。
请参见docs on anonymous functions。
没有必要添加例如new MouseButtonEventHandler
订阅事件-编译器会自动为您插入。例如,这两行做相同的事情:
something.PreviewMouseDown += SomeHandler;
something.PreviewMouseDown += new MouseButtonEventHandler(SomeHandler);