Как отключить любое взаимодействие со строкой DataGrid

подскажите, пожалуйста, как отключить любое взаимодействие со строкой DataGrid если для нее установлено IsEnabled = false, кроме наведения мыши для показа подсказки? Если я просто устанавливаю IsEnabled = false строка продолжает выбираться при нажатии ПКМ. но при этом IsHitTestVisible = false не подходит, так как он блокирует абсолютное любое взаимодействие со строкой и подсказка перестает показываться. Пробовал вот так добавить поведение, но не срабатывает

public class DataGridRowDisabledInteractionBehavior : Behavior<DataGrid>
{
    protected override void OnAttached()
    {
        base.OnAttached();
        AssociatedObject.AddHandler(DataGridRow.PreviewMouseRightButtonDownEvent, (RoutedEventHandler)OnPreviewMouseDown);
    }

    protected override void OnDetaching()
    {
        base.OnDetaching();
        AssociatedObject.RemoveHandler(DataGridRow.PreviewMouseRightButtonDownEvent, (RoutedEventHandler)OnPreviewMouseDown);
    }

    private void OnPreviewMouseDown(object sender, RoutedEventArgs e)
    {
        var item = (e.OriginalSource as DataGridRow)?.DataContext;

        if (item is TableRowObject row && row.IsEnabled == false)
            e.Handled = true;
    }
}

Примерно чего хочу добиться: в таблице показываются пользователю несколько строк. чтобы пользователь выбрал нужную ему и продолжил работу с ней. по определенным критериям некоторые строки не должны быть доступны пользователю для выбора, но при наведении на них должны быть подсказка (нельзя выбрать - причина). И у меня есть кнопка, которая становится активной, только тогда когда пользователь выбрал какую-то строку. Но если нажать ПКМ, то даже не активная строка IsEnabled = false выбирается и кнопка становится некорректно активной


Ответы (0 шт):