2011-07-17 67 views
1

我想有2個的SelectionChanged事件, 這樣C#多的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
我該如何解決這個問題?

+1

爲什麼你需要2個? – ysrb

回答

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 
} 

和標記刪除事件處理程序申報。

How to: Create Event Handlers in ASP.NET Web Pages

+0

什麼是事件處理程序,也是我得到這個errror代碼'TestApp.MainPage.xpathList_SelectionChanged2(object,System.Windows.Controls.SelectionChangedEventArgs)':找不到合適的方法來覆蓋' –

+0

@ Lark125事件哈勒 - 處理'SelectionChanged'事件。更新我的答案以使用'override'關鍵字。 – VMAtm

+0

謝謝你非常多的一件事,它無法找到'OnSelectionChanged'方法它可以找到'SelectionChanged' –

1

您需要創建兩個不同名稱的方法。

您需要手動添加第二個作爲處理程序;設計師不能將兩個處理程序添加到一個事件中。
xpathList.SelectionChanged += SomeMethod

1

你爲什麼不只是綁定了兩個函數來一個連?

XPathList xpathList = new XPathList(); 
xpathList.OnSelectionChanged +=(s,e) => FirstHandler(s,e); 
xpathList.OnSelectionChanged += (s,e) => SecondHandler(s,e); 
+0

爲什麼使用'new XPathList()'? – VMAtm

+0

是的,我的壞,應該是XPath'es列表: 'List ()' –

+0

不,你爲什麼要創建新的控制? – VMAtm

相關問題