Вообще говоря, это хорошая практика MVVM - избегать кода внутри кода, как в случае использования событий в пользовательских элементах управления. Поэтому, когда это возможно, используйте INotifyPropertyChanged
и ICommand
.
С учетом вышесказанного, в зависимости от вашего проекта и от того, насколько вы прагматичны, иногда имеет смысл использовать код элемента управления.
Я несколько раз использовал что-то вроде этого:
private void textBox1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
MyViewModel vm = this.DataContext as MyViewModel;
vm.MethodToExecute(...);
}
Вы также можете рассмотреть Поведение прикрепленной команды , дополнительную информацию об этом и реализации можно найти здесь:
Запуск события двойного щелчка из элемента WPF ListView с использованием MVVM