0

Использую

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

 <i:Interaction.Triggers>
   <i:EventTrigger EventName="MouseDown">
   <i:InvokeCommandAction Command="{Binding Path=MouseDownEvent}"/>
 /i:EventTrigger>

Как мне получить кнопку которая нажата?

public ICommand MouseDownEvent { get; set; } 
public MainViewModel(MainWindow window)
{
    this.MouseDownEvent = new RelayCommand(o => {
    });
}
  • зачем получать кнопку, которая нажата, во вьюмодели? – tym32167 Jul 22 '18 at 16:05
  • @tym32167 а где? и как мне узнать? – Mike Waters Jul 22 '18 at 16:07
  • для чего вам надо это знать? – tym32167 Jul 22 '18 at 16:09
  • @tym32167 мне нужно сделать window.DragMove и узнать MouseButtonEventArgs чтоб обработать doubleclick – Mike Waters Jul 22 '18 at 16:10
  • Для этого надо использовать MouseBinding, а не что у вас. Пример: https://ru.stackoverflow.com/a/735522/218063 Хотя, конечно, всякие перетаскивания это задача представления и VM о нем знать не должен – Андрей NOP Jul 22 '18 at 16:22
  • не уверен, что делать это во вью модели правильно, но если вам надо что то передать в команду, вы можете воспользоваться свойством CommandArgument там же, где биндите команду. – tym32167 Jul 22 '18 at 16:23
  • @tym32167 как я понимаю VM должна связывать View и Model. В моем случае Model window? нет? – Mike Waters Jul 22 '18 at 16:30
  • нет. Есть View, есть Model, между ними есть ViewModel. А Window - это просто контрол, который помогает представлению – tym32167 Jul 22 '18 at 16:38

0 Answers0