Не могу установить пользовательское контекстное меню для таблицы в richtextbox - PullRequest
0 голосов
/ 17 мая 2011
<Window.Resources>
  <ContextMenu x:Key="TableContextMenu">
   <MenuItem Command="Copy" />
   <MenuItem Header="asdasdsad" />
  </ContextMenu>
  <Style TargetType="{x:Type Table}">
   <Setter Property="ContextMenu" Value="{StaticResource TableContextMenu}" />
  </Style>
 </Window.Resources>

У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 18 мая 2011

Понял, вы должны вручную открыть контекстное меню ..

<Style TargetType="{x:Type TableCell}">
        <EventSetter Event="ContextMenuOpening" Handler="Table_ContextMenuOpening" />
        <Setter Property="ContextMenu" Value="{StaticResource TableContextMenu}" />
    </Style>

В обработчике открытия контекстного меню вы должны установить для обработанного параметра значение true и открыть контекстное меню

lastTableCell.ContextMenu.IsOpen = true;

Если ваши команды в контекстном меню отображаются серым цветом: afaik, это ошибка, и вы должны поместить привязки команд непосредственно в контекстное меню в XAML

<ContextMenu x:Key="TableContextMenu">
        <ContextMenu.CommandBindings>
            <CommandBinding Command="{x:Static main:MainWindow.AddRowAboveCommand}"
                    CanExecute="CanExecuteAlways"
                    Executed="AddRowAbove_Executed" />
        </ContextMenu.CommandBindings>

Приветствия

...