我想检测用户何时点击列表视图上的项目,而不使用事件,因为我执行命令绑定,我不喜欢所有行为的废话。我试过这个:
<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。这些中的任何一个都可能吗?
答案 0 :(得分:0)
当使用这样的命令驱动架构时,我通常使用AttachedCommandBehavior来解决微软没有使MouseBinding.Command成为DependencyProperty的事实。下面显示了如何使用此方法获得所需功能的示例:
<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>