我想检测用户何时单击列表视图上的项目,而不像我执行命令绑定那样使用事件,并且我不喜欢所有无意义的行为。我已经尝试过这个:
<ListView x:Name="MainList" Margin="2,8,6,8" Background="Black"
ItemsSource="{Binding Path=AssetsVM.Data, Mode=OneWay}"
BorderBrush="{x:Null}" >
<ListView.InputBindings>
<MouseBinding Command="{Binding Path=AssetsVM.SelectActivo}"
CommandParameter="{Binding ElementName=MainList, Path=SelectedItem}"
MouseAction="LeftClick" />
</ListView.InputBindings>
如果我单击列表视图,则效果很好,但不适用于项目。我需要的是一种启用“预览”的方法,或者具有充当预览的 MouseAction/Gesture。其中之一可能吗?
当使用这样的命令驱动架构时,我通常使用附加命令行为 http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/为了回避微软没有制造的事实鼠标绑定命令 http://msdn.microsoft.com/en-us/library/system.windows.input.inputbinding.command.aspx一个依赖属性。下面显示了如何使用此方法获得所需功能的示例:
<ListView x:Name="MainList" ItemsSource="{Binding Path=AssetsVM.Data, Mode=OneWay}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Style.Setters>
<Setter Property="acb:CommandBehavior.Event" Value="Selected" />
<Setter Property="acb:CommandBehavior.Command" Value="{Binding DataContext.AssetsVM.SelectActivo, ElementName=MainList}" />
<Setter Property="acb:CommandBehavior.CommandParameter" Value="{Binding}" />
</Style.Setters>
</Style>
</ListView.ItemContainerStyle>
</ListView>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)