Как узнать, какая сгенерированная кнопка была нажата в списке? - PullRequest
2 голосов
/ 18 мая 2011

Я разрабатываю приложение WP7 и у меня есть список со сгенерированными кнопками, которые, как предполагается, ведут к чему-то конкретному. Я не могу понять, как узнать, какая кнопка была нажата во время выполнения. Список генерируется из коллекции объектов с парой атрибутов в каждом. Один из этих атрибутов содержит значение, которое мне нужно получить, чтобы знать, куда отправить пользователя.

Итак, мой желаемый процесс состоит в том, что пользователь нажимает на элемент в списке, передавая значение атрибута в объекте, из которого была сгенерирована кнопка, обработчику щелчков, который отправляет пользователя в нужное место.

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 18 мая 2011

Я предполагаю, что ваш ListBox содержит ItemTemplate, который создает Button для каждого из элементов, связанных с вашим списком? если это так, в вашем обработчике событий Click вам нужно проверить DataContext кнопки, на которую вы нажали:

private void Button_Click(object sender, RoutedEventArgs e)
{
  Button btn = sender as Button;
  var myObject = btn.DataContext;
}

Кроме того, если вы используете это для навигации, ListBox не даст вам очень хорошую производительность. См. Следующий пост в блоге для альтернативы:

http://www.scottlogic.co.uk/blog/colin/2011/04/a-fast-loading-windows-phone-7-navigationlist-control/

1 голос
/ 18 мая 2011

Проверьте свойство sender обработчика событий OnClick для обработки кликов.

В качестве альтернативы вы можете обработать событие SelectionChanged объекта ListBox и затем запросить содержимое SelectedItem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...