菜单项以编程方式排序



我正在将多个菜单项添加到菜单项控件中。控件是在 xaml 中创建的,但它为空。我使用

MenuItem subMenuItem = new MenuItem();
subMenuItem.Header = "sub item 1";
MenuItemGroupA.Items.Insert( 0, subMenuItem);

以向其添加子菜单项。这工作正常。但是,我想控制我添加到 MenuItem 的那些子菜单项的顺序,而不是通过它们的名称,也不是通过它们的添加顺序。我试图将第一个参数更改为其他一些数字。在我看来,如果我使用任何大于 0 的东西,则不会添加子项。

有什么建议吗?

[编辑以添加更多详细信息]

代码位于函数中并被调用多次,具体取决于文件夹中特定 DLL 的数量。例如,如果我在该文件夹中查找 3 个 DLL,我会查询它们的名称并获取苹果、香蕉、樱桃。但我希望菜单显示如下:樱桃、苹果和香蕉。我试图创建一个字典,如{{"Apple",1},{"Banana",2},{"Cherry",3}},但甚至不知道这是否有用。

您可以尝试使用 CollectionViewSource.SortDescriptions 属性。

您可以按任何属性对项进行排序,例如 Tag 属性,如此处所述

最新更新