在使用MVVM的WPF应用程序中,我有一个带有listview项的usercontrol.在运行时,它将使用数据绑定来用列表视图填充对象集合.
将双击事件附加到列表视图中的项目的正确方法是什么,以便在列表视图中的项目被双击时,视图模型中的相应事件被触发并且引用了单击的项目?
如何以干净的MVVM方式完成,即视图中没有代码?
WPF ListBox没有DoubleClick事件,至少没有我能说的那么多.是否有针对此问题的解决方法,让我双击项目以让事件处理程序对其执行某些操作?谢谢你的帮助.
在我的WPF应用程序中,我正在处理ListBox SelectionChanged事件,它运行正常.
现在我需要处理一个点击事件(即使对于已经选择的项目); 我尝试过MouseDown,但它不起作用.如何处理ListBox单击项目?
当用户双击列表框项目时,我正在尝试启动ICommand.此外,我正在尝试使用MVVM模式.
在这个XAML中,按键"p"完美地工作.当我双击列表框时,命令永远不会启动.我设置了一个断点来确认没有通过双击调用"PlayVideoCommand".我错过了什么或者我是否必须使用Setter(我不熟悉)?
<ListBox Name="SmallVideoPreviews" Grid.Column="1" MaxHeight="965"
ItemsSource="{Binding BrowseVideos}"
ItemTemplate="{StaticResource BrowseTemplate}">
<ListBox.InputBindings>
<KeyBinding Key="p"
Command="{Binding PlayVideoCommand}"
CommandParameter="{Binding ElementName=SmallVideoPreviews, Path=SelectedItem}"/>
<MouseBinding Gesture="LeftDoubleClick"
Command="{Binding PlayVideoCommand}"
CommandParameter="{Binding ElementName=SmallVideoPreviews, Path=SelectedItem}"/>
</ListBox.InputBindings>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
双击和"p"都应该执行相同的命令.使用鼠标时,我可以看到listboxitem已被选中.我有一个预感,MouseBinding Command属性不是依赖属性,但我不知道如何确认这一点.