Доступ к пункту меню (WPF) - PullRequest
       0

Доступ к пункту меню (WPF)

0 голосов
/ 30 октября 2011

Я использую следующий код для обработки кликов по пункту меню:

 private void MenuItem_Click(object sender, RoutedEventArgs e)
 {
     MenuItem mi = (MenuItem)sender;

     switch (mi.Name)
     {
         case "MenuItem1":
         .
         .
         ///How to disable MenuItem2 from here?
         break;

         case "MenuItem2":
         .
         .
         break;
     }
  }

Хотя я могу получить доступ к MenuItem, по которому щелкнули, как мне получить доступ к другому MenuItem, по которому не щелкнули?

Ответы [ 2 ]

1 голос
/ 30 октября 2011

Не следует использовать переключатели для свойства name, вместо этого создайте обработчик событий для каждого элемента.Также, если MenuItem является «статическим», у вас уже должна быть ссылка на него, так что вы сможете использовать его через MenuItem2.LoremIpsum.Если он не статичен, вы можете добавить ссылку на MenuItem1 в Tag, например: Tag="{x:Reference MenuItem2}", тогда вы можете разыграть mi.Tag и использовать ее оттуда.Есть, конечно, другие методы получения ссылки, такие как FindName или другие рекурсивные методы поиска, которые используют визуальные или логические деревья.

Помимо переключения имени, я сомневаюсь, что доступ к одному менювещь из другого - такая хорошая идея, все станет грязно.

0 голосов
/ 30 октября 2011

Используйте VisualTreeHelper, чтобы перейти на один уровень вверх по дереву, чтобы попасть в ваше меню - оттуда вы можете получить доступ к тому, что вам нравится.

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