Как в WPF фильтровать двойной клик по ListView только левой кнопкой?

Доброе время суток.
Пытаюсь сделать фильтрацию двойного клика по ListVIew только левой кнопкой мыши:
<i:Interaction.Triggers>
                    <i:EventTrigger EventName="MouseDoubleClick">
                        <i:InvokeCommandAction Command="{Binding Edit, Mode=OneWay}"/>
                    </i:EventTrigger>
                </i:Interaction.Triggers>

Но в приёмной стороне нет параметра какой кнопкой был клик:
public ICommand Edit
        {
            get
            {
                return new DelegateCommand(o =>
                {
                    ApplicationController.EditReminder(SelectedReminder);
                    SaveReminders();
                });
            }
        }

Пишу на "чистом" WPF, никакими сторонними WPF фреймворками не пользуюсь, решения через них не подходят.
  • Вопрос задан
  • 403 просмотра
Решения вопроса 1
FoggyFinder
@FoggyFinder
Можно пойти разными способами:

1. Использовать InputBinding, а именно MouseBinding. Тут LeftDoubleClick один из вариантов отслеживаемых действий, посмотреть весь список можно тут

2. Использовать CallMethodAction вместо InvokeCommandAction, тогда вы сможете учитывать аргументы события.
Сигнатура метода должна быть точно такая же как если бы вы обрабатывали событие в View части.

3. Поискать реализацию (или написать самостоятельно) EventToCommand где будет метод PassEventArgsToCommand (с корректной реализацией)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы