Я бы не привязывался к коллекции MenuItems, а скорее к коллекции, управляемой данными, которая может содержать заголовок MenuItem, команду, которая выполняется при нажатии, и другую коллекцию таких элементов для подпунктов. Затем вы можете использовать (Иерархический) DataTemplate для создания меню на лету. Это, вероятно, решит проблемы обновления, если ваш тип данных реализует необходимые интерфейсы.
Редактировать: Кажется, у вас уже есть такой тип данных, не могли бы вы опубликовать его код?
Edit2: Я думаю, что проблема в том, что вы используете стиль, который нужно явно применить (он, вероятно, применяется только к главному контекстному меню, а не к подпунктам), как отмечалось ранее я бы предложил HierarchicalDataTemplate
.
Edit3: lol ...
public List<MenuItem> Children { get; private set; }
Конечно, обновление не будет, если это List
, а не ObservableCollection
.
(Кстати, класс довольно плохо спроектирован, списки обычно не должны иметь даже частного установщика, это должны быть свойства, имеющие только метод получения поля readonly
)