У меня также была аналогичная проблема, когда мне нужно было связать событие MouseDoubleClick списка с командой в моей модели ViewModel.
Самое простое решение, которое я придумал, это положить фиктивную кнопку, которая имеет обязательную привязку команды и вызов метода Execute команды кнопки в обработчике событий события MouseDoubleClick.
.xaml
<Button Visibility="Collapsed" Name="doubleClickButton" Command="{Binding Path=CommandShowCompanyCards}"></Button>
<ListView MouseDoubleClick="ListView_MouseDoubleClick" SelectedItem="{Binding Path=SelectedCompany, UpdateSourceTrigger=PropertyChanged}" BorderThickness="0" Margin="0,10,0,0" ItemsSource="{Binding Path=CompanyList, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" HorizontalContentAlignment="Stretch" >
отделенного кода
private void ListView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
doubleClickButton.Command.Execute(null);
}
Это не просто, но это действительно просто, и это работает.
У меня уже есть три вспомогательных классов в моем проекте. Я просто хочу, чтобы WPF полностью поддерживал все эти вещи, которые разработчики хотят с этим поделать, но я думаю, что это придет вовремя. Спасибо, что сработало :) – bluebit
Я согласен с вашим общим настроением - немного разочаровывает, что поддержка MVVM больше не запекается в WPF. Большинство опытных разработчиков WPF создали свою собственную небольшую библиотеку вспомогательных вспомогательных материалов. Разрыв в функциональности еще больше, если вы делаете Silverlight! –