2013-09-02 1 views
0

Я создал настраиваемое контекстное меню в отдельном пользовательском классе управления CustomContextMenuUc.Установить КонтекстМеню UserControl для сетки

Простая версия кода выглядит следующим образом.

<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 в нескольких Windows. Я могу назначить этот элемент управления пользователя в C# код, как

ContextMenuGrid.ContextMenu = new CustomContextMenuUc(); 

ContextMenuGrid Где находится сетка.

Я хочу сделать это в XAML. Как мне это сделать?

<DataGrid ContextMenu=""> 

ответ

2

Вы должны определить ресурс в ресурсах вашего окна, как

<local:CustomContextMenuUc x:Key="MyContextMenu"/> 

здесь local является XMLNS, где определен ваш ContextMenu.

Затем вы можете сделать

<DataGrid ContextMenu="{StaticResource MyContextMenu}"> 

Благодаря

Смежные вопросы