有没有一种方法可以为MenuItem ItemSource的前10个项目分配InputGestureText?

时间:2019-03-25 14:33:03

标签: c# wpf xaml menuitem itemsource

我正在尝试创建一个模板,该模板将为InputGestureText分配最多MenuItem的ItemSource的前10个项目的静态值,或者从事件触发后的代码中进行此操作,但是我没有运气试图获取实际的MenuItem对象。

我一直在测试从MenuItem触发的不同事件,但是每次尝试遍历MenuItem的Items属性时,我都在获取字符串对象,而不是要按顺序为其分配值的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);
            }
        }

从F1到F10,基本上直到前10个项都被分配了InputGestureTexts。

编辑

之所以不与指定的帖子重复,是因为那里的用户正在使用静态创建的MenuItem,而这里是从ItemSource加载的,ItemSource可以动态更改给定的事件,该事件在集合中添加或删除。 / p>

0 个答案:

没有答案