1

我想要 2 个 selectionchanged 事件,像这样

protected override void xpathList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//my code
}

private void xpathList_SelectionChanged(object sender, SelectionChangedEventsArgs e)
{
//my code
}

它给出了以下错误:Type 'TestApp.MainPage' already defines a member called 'xpathList_SelectionChanged' with the same parameter type
我该如何解决这个问题?

4

3 回答 3

3

您不能创建具有相同签名的相同方法。如果要通过两种不同的方法为一个控件处理一个事件,则必须使用这样的代码:

Page_Init()
{
    //initialization code
    xpathList.OnSelectionChanged += xpathList_SelectionChanged1;
    xpathList.OnSelectionChanged += xpathList_SelectionChanged2;
}

protected void xpathList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//my code
}

protected void xpathList_SelectionChanged2(object sender, SelectionChangedEventsArgs e)
{
//my code
}

并从标记中删除事件处理程序声明。

如何:在 ASP.NET 网页中创建事件处理程序

于 2011-07-17T13:58:41.330 回答
1

您需要创建两个具有不同名称的方法。

您需要手动添加第二个作为处理程序;设计者不能为一个事件添加两个处理程序。
xpathList.SelectionChanged += SomeMethod

于 2011-07-17T13:57:56.020 回答
1

你为什么不把两个函数绑定到一个呢?

XPathList xpathList = new XPathList();
xpathList.OnSelectionChanged +=(s,e) => FirstHandler(s,e);
xpathList.OnSelectionChanged += (s,e) => SecondHandler(s,e);
于 2011-07-17T13:59:39.743 回答