C # Multiple SelectionChanged События - PullRequest
1 голос
/ 17 июля 2011

Я хочу иметь 2 события с измененным выбором, например,

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.
Как мне решить эту проблему?

Ответы [ 3 ]

3 голосов
/ 17 июля 2011

Вы не можете создать идентичный метод с одинаковой подписью. Если вы хотите обработать одно событие для одного элемента управления двумя разными методами, вы должны использовать такой код:

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

1 голос
/ 17 июля 2011

Почему бы вам просто не связать две функции с одной четной?

XPathList xpathList = new XPathList();
xpathList.OnSelectionChanged +=(s,e) => FirstHandler(s,e);
xpathList.OnSelectionChanged += (s,e) => SecondHandler(s,e);
1 голос
/ 17 июля 2011

Вам нужно создать два метода с разными именами.

Вам нужно будет добавить второй как обработчик вручную;дизайнер не может добавить два обработчика к одному событию.
Запись xpathList.SelectionChanged += SomeMethod

...