Доброй ночи. Вопрос такой: нужно отключить ContextMenu
, если кликнули не на ListItem
.
Обычным HitTest
в ListView не получается сделать.
Создавать отдельно менюшку в XAML, а затем кидать ее в ItemContainerStyle
тоже не подойдет, так как используются библиотеки, в которых есть встроенные style-ы, и менять их запрещено. Соответственно так сделать нельзя.
Есть какие-нибудь варианты?
UPDATE: В App.xaml есть подключенный словарь ресурсов, такой себе super-словарь:
<ResourceDictionary Source="pack://application:,,,/Some;component/Styles/ControlStyles.xaml" />
В MainWindow.xaml я создаю ContextMenu
как ресурс:
<ListView.Resources>
<ContextMenu x:Key="ItemContextMenu">
<MenuItem Header="Пункт меню" Command="{Binding MyCommand}"/>
</ContextMenu>
</ListView.Resources>
и затем добавляю его в ItemContainerStyle
:
<ListView.ItemContainerStyle>
<Style TargetType ="{x:Type ListViewItem}">
<Setter Property="ContextMenu" Value="{StaticResource contextMenu}"/>
</Style>
</ListView.ItemContainerStyle>
И получается, что я полностью теряю стиль моего ListViewItem
, определенный в словаре ресурсов в App.xaml
.
Спасибо за BasedOn
:
<ListView.ItemContainerStyle>
<Style TargetType ="{x:Type ListViewItem}" BasedOn="{StaticResource {x:Type ListViewItem}}">
<Setter Property="ContextMenu" Value="{StaticResource contextMenu}"/>
</Style>
</ListView.ItemContainerStyle>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно нарисовать или вставить программным способом и чтобы можно было ее растягиватьИли же вставить как строки
Какой программный компонент Visual Studio оптимально подходит для вывода текстовых данных, изображений? Целесообразно ли использовать для этого...
Каким образом можно выгрузить информацию из разных таблиц в один xml файл?
Необходимо, чтобы если у пользователя изменилось имя, email или пароль произошел выход со всех других устройствПолагаю, что это можно сделать...