Установите ContextMenu UserControl для сетки
Я создал пользовательское контекстное меню в отдельном пользовательском классе управления CustomContextMenuUc.
Простая версия кода выглядит следующим образом.
<ContextMenu x:Class="CustomContextMenu.CustomContextMenuUc"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ItemsSource="{Binding Groups}">
<ContextMenu.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Items}">
<TextBlock Text="{Binding Description.Value}" />
</HierarchicalDataTemplate>
</ContextMenu.ItemTemplate>
<ContextMenu.OverridesDefaultStyle>True</ContextMenu.OverridesDefaultStyle>
<ContextMenu.Placement>Custom</ContextMenu.Placement>
</ContextMenu>
Я хочу использовать это CustomContextMenuUc
в нескольких окнах. Я могу назначить этот пользовательский элемент управления в коде C#, как
ContextMenuGrid.ContextMenu = new CustomContextMenuUc();
куда ContextMenuGrid
это сетка.
Я хочу сделать это в XAML. Как мне это сделать?
<DataGrid ContextMenu="">
1 ответ
Решение
Вам нужно будет определить Ресурс в ресурсах вашего окна следующим образом
<local:CustomContextMenuUc x:Key="MyContextMenu"/>
Вот local
это xmlns, где определено ваше контекстное меню.
Тогда вы можете сделать
<DataGrid ContextMenu="{StaticResource MyContextMenu}">
Спасибо