Есть ли способ назначить InputGestureText для первых 10 элементов в MenuItem ItemSource? - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь либо создать шаблон, который будет назначать статические значения для InputGestureText до первых 10 элементов ItemSource для MenuItem, либо делать это из выделенного кода после возникновения события, но мне не повезлопытаясь получить реальный объект MenuItem.

Я тестировал различные события, запускаемые из MenuItem, но каждый раз, когда я пытаюсь пройтись по циклу через свойство Items MenuItem, я получаю строковые объекты вместо объекта MenuItemкоторый я хочу, чтобы присвоить значение его InputGestureText.

Вот XAML для контекстного меню:

<MenuItem x:Name="ClassNameContext_1" 
          Header="Suggested Names" 
          ItemsSource="{Binding Path=DataContext.ClassNameList, Source={x:Reference ImgView}}" 
          Click="ClassNameContext_Click"
          MouseEnter="ClassNameContext_MouseEnter"
          SubmenuOpened="ClassNameContext_1_SubmenuOpened"/>

Исходный код для моих попыток:

private void ClassNameContext_1_SubmenuOpened(object sender, RoutedEventArgs e)
        {
            MenuItem suggestedNames = e.OriginalSource as MenuItem;
            if (suggestedNames == null)
                return;

            suggestedNames.InputGestureText = "TEST";

            int index = 0;
            foreach (var item in suggestedNames.ItemContainerGenerator.Items)
            {
                MenuItem blah = item as MenuItem;
                var bloo = item.GetType();
                var bruh = suggestedNames.ItemContainerGenerator.ContainerFromIndex(index);
            }
        }

В основном, до первых 10 элементов будет присвоен InputGestureTexts, начиная с F1 до F10.

РЕДАКТИРОВАТЬ

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

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