2011-07-17 8 views
1

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

同じ署名で同じメソッドを作成することはできません。 次の2つの異なる方法によって一つの制御のための1つのイベントを処理したい場合は、そのようなコードを使用する必要があります

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 
} 

をマークアップからのイベントハンドラ宣言を削除してください。あなただけでも1に二つの機能を結合しないのはなぜ

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

+0

何がイベントハンドラであり、また、このエラーコード 'TestApp.MainPage.xpathList_SelectionChanged2(object、System.Windows.Controls.SelectionChangedEventArgs) 'を取得しました:適切なメソッドが見つかりませんでした。 –

+0

@ Lark125イベントhadler - 'SelectionChanged'イベントです。私の答えが更新され、 'override'キーワードが使用されました。 – VMAtm

+0

verryたくさんありがとうございます。メソッドOnSelectionChangedを見つけることができません。それは 'SelectionChanged'を見つけることができます –

1

異なる名前の2つのメソッドを作成する必要があります。

手動でハンドラとして追加する必要があります。設計者は2つのハンドラを1つのイベントに追加することはできません。
書き込みxpathList.SelectionChanged += SomeMethod

1

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

なぜ新しいXPathList()を使用しますか? – VMAtm

+0

いいえ、私の悪い、XPath'esのリスト: 'リスト()' –

+0

いいえ、なぜあなたは新しいコントロールを作成していますか? – VMAtm

関連する問題