在WPF中,我的ListView有ListView.InputBindings,我想在其中添加一个MouseBinding,用于触发ICommand的左键双击。
现在我的代码看起来像这样:
<ListView Name="ListViewName"
Grid.Row="1"
Grid.Column="0"
ItemsSource="{Binding DefinedItems}"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto">
<ListView.InputBindings>
<KeyBinding Key="Delete"
Command="{Binding DeleteSelectedItems}"
CommandParameter="{Binding SelectedItems, ElementName=ItemsListView}">
</KeyBinding>
<KeyBinding Key="Space"
Command="{Binding SwitchItemState}"
CommandParameter="{Binding SelectedItems, ElementName=ItemsListView}">
</KeyBinding>
<MouseBinding Gesture="LeftDoubleClick"
Command="{Binding GoToItem}"
CommandParameter="{Binding SelectedItems, ElementName=ItemsListView}">
</MouseBinding>
</ListView.InputBindings>
我已经在viewModel上设置了命令,但是我不知道鼠标事件C#代码在哪里,或者我是否需要它。提前感谢!
1条答案
按热度按时间tuwxkamq1#
有各种各样的第三方软件包来引入允许事件绑定到命令的事件行为,但它基本上是使用影响驱动程序来挂一个小图片。最后,让您的生活更轻松,只需使用事件处理程序,然后在代码后面执行ICommand。
请记住,MVVM并不意味着“没有代码隐藏”,这是经常建议的,它只是意味着代码隐藏应该是遵循单向关系的可视化逻辑,而这个解决方案就是这样做的。