У меня есть сетка данных, привязанная к коллекции пользовательских объектов.
Эта сетка данных позволяет пользователю получить доступ к контекстному меню, когда он щелкает правой кнопкой мыши по строке. Я делаю это с помощью стиля TextBlock:
<Style x:Key="DatagridTextblockStyle"
TargetType="{x:Type TextBlock}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="First action" />
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
Он также отображает строки, которые могут быть отключены, если свойство bool "IsActive" пользовательского объекта имеет значение false.
Я делаю это через DataGrid.RowStyle :
<DataGrid ItemsSource="{Binding MyCustomObjects}">
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsActive}"
Value="True">
<Setter Property="IsEnabled"
Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
Это отлично работает. Проблема, однако, в том, что когда строка отключена, контекстное меню больше не доступно.
Я не могу найти способ обойти это.
Есть идеи?