2009-07-31 4 views
0

У меня есть контекстное меню, связанное со списком строк, так что каждый текст menuitem является элементом списка строк. Каждый элемент меню установлен в тот же обработчик событий. Я пытаюсь выяснить, какой элемент меню был нажат, когда вызывается обработчик событий.Получение текста пункта меню, который был нажат?

Я бы подумал, что это будет довольно прямолинейно, но я немного в тупике.

Если я смотрю окно с часами, есть свойство menuitem, называемое FocusedItem. У него есть информация, которая мне нужна, но когда я пытаюсь ее использовать, она, похоже, не является частью класса, и код даже не компилируется, что я считаю странным.

Может кто-нибудь указать мне в правильном направлении?

бит из XAML и кода У меня возникли проблемы с:

<MenuItem Header="Add Object" ItemsSource="{Binding ObjectClassList}" Click="AddObject_Click"/> 

    private void AddObject_Click(object sender, RoutedEventArgs e) 
    { 
     MenuItem menuItem = sender as MenuItem; 

     if (menuItem == null) 
     { 
      return; 
     } 

     // menuItem.FocusedItem // ?? does not compile 


    } 

Спасибо!

ответ

3

Это работает для меня, но не 100% уверен, что это правильный путь (он находится на правильном пути, хотя!)

MenuItem m = (MenuItem)e.OriginalSource; 

Я верю, что это правильно, так как «контейнер» MenuItem оборачивает события для добавленных элементов строкового меню. «OriginalSource» будет щелчок по пункту меню строки ...

+0

А, да. Вот и все. Я использовал неправильную вещь. Кроме того, получение текста так же просто, как получение свойства заголовка в виде строки. – djcouchycouch

2

Некоторые замечания, которые могут быть полезны при чтении принят ответ на Sk93:

void Handle_RoutedEvent(object sender, RoutedEventArgs e) 
  • отправитель является логическим элементом, который имеет определил обработчик события.
  • RoutedEventArgs.source - это логический элемент, который определил обработчик события.
  • RoutedEventArgs.originalSource - это визуальный элемент, на который пользователь нажал.

 Смежные вопросы

  • Нет связанных вопросов^_^