Установите 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}">

Спасибо

Другие вопросы по тегам