Как управлять состоянием IsEnabled MenuItem, имеющего некоторые встроенные элементы MenuItem - PullRequest
0 голосов
/ 01 мая 2020

У меня есть следующее иерархическое меню, использующее привязку команды MVVM для встроенных элементов:

<MenuItem Header="_Remove Images ..." >
    <MenuItem Header="_GPS Data XML (.ivg)" Command="{Binding RemoveXmlFilesCommand}" CommandParameter="ivg" />
    <MenuItem Header="_Metatags Data XML (.ivm)" Command="{Binding RemoveXmlFilesCommand}" CommandParameter="ivm"/>
    <MenuItem Header="Image _Backup Files (.bak)" Command="{Binding RemoveImageBackupCommand}"/>                                        
</MenuItem>

Я хотел бы добиться (если это возможно только в XAML), что главный MenuItem отключен или окрашен в серый цвет, когда все встроенные элементы MenuItem отключены Я попытался создать <Style.Triggers>, конвертер, связанный с основным MenuItem и анализирующий встроенные элементы MenuItem, а также фиктивную команду с CommandParameter, привязанную к основному экземпляру MenuItem, но безуспешно. Триггеры не могут получить доступ к свойству IsEnabled или Opacity, конвертер вызывается только один раз при создании дерева визуалов, а фиктивная команда блокирует вложенные элементы.

У кого-нибудь есть идеи, как решить эту проблему?

...