У меня есть ListBox, который использует DataTemplateSelector, чтобы динамически решать, какой шаблон использовать, в зависимости от типа элемента в списке. Теперь я хочу перехватить события, которые могут запускаться элементами управления в DataTemplate. Например, если в одном из шаблонов есть флажок, я хочу, чтобы приложение, использующее элемент управления, получало уведомление, когда этот флажок установлен. Если в другом шаблоне есть кнопка, я хочу получать уведомление при нажатии кнопки.
Кроме того, поскольку это ListBox, многие элементы могут иметь один и тот же шаблон. Поэтому мне понадобится какой-то RoutedEventArgs, чтобы я мог выйти из OriginalSource и получить некоторую контекстную информацию для обработки события.
Мое решение заключалось в использовании MouseLeftButtonUp. Это отлично работает для TextBlocks, но похоже, что для элементов управления CheckBox и Button установлено значение true, поэтому событие не всплывает. Как я могу обработать эти события, чтобы назначить им обработчики в моем вызывающем приложении?
(Кроме того, Silverlight на самом деле не поддерживает DataTemplateSelector, поэтому я последовал этому примеру реализовать это)