У меня есть некоторые ContextMenu С некоторыми элементами меню. Одним из элементов меню является «Добавить элемент ...». когда пользователь выберет этот элемент, он должен увидеть подменю со списком доступных предметов;Элементы ContextMenu Видимость
здесь описание моего Контекстное:
- Добавить Item
- Пункт 1
- Пункт 2
- Пункт 3
- Пункт 4
- Удалить
- Copy
ItemsSource из 'Добавить элемент' MENUITEM является переплетены в некоторой наблюдаемой коллекции. Каждая модель в коллекционере имеет «Имя» и «IsEnabled» (у меня есть конвертер, который конвертирует bool в видимость). Все работает отлично, за исключением того факта, что элементы, имеющие «IsEnable» = false, не видны, но я вижу там пространство. , например: пусть говорят, что пункт 3 имеет IsEnable = ложный:
Добавить элемент
- Пункт 1
Пункт 2
Пункт 4
Мой конвертер bool2Vis возвращает «Свернутый» в случае ложного значения.
Что я делаю неправильно?
Вот ContextMenu Код:
<ContextMenu x:Key="mainContextMenu" DataContext="{Binding Source={x:Static fw:UIMainManager.Instance},Path=layoutManager}">
<MenuItem Header="Add Item" Name="addItemMenu" ItemsSource="{Binding ControlBoxItems}" >
<MenuItem.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding ControlName}" Visibility="{Binding IsEnabled,Converter={StaticResource boolToVisibilityConverter}}"
Command="{Binding Source={x:Static fw:ApplicationCommands.AddControlToScene}}" CommandParameter="{Binding}"/>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
<MenuItem Header="Copy" Command="{Binding Source={x:Static fw:ApplicationCommands.Copy}}" />
<MenuItem Header="Paste" Command="{Binding Source={x:Static fw:ApplicationCommands.Paste}}" />
<MenuItem Header="Cut" Command="{Binding Source={x:Static fw:ApplicationCommands.Cut}}" />
<MenuItem Header="Duplicated" Command="{Binding Source={x:Static fw:ApplicationCommands.DuplicateControl}}" />
<MenuItem Header="Delete" Command="{Binding Source={x:Static fw:ApplicationCommands.DeleteControl}}" />
</ContextMenu>
Спасибо! Это фиксировало проблему – leonnoah