当用户单击ListViewItem时,如何触发事件或命令?

时间:2012-06-29 18:37:49

标签: wpf

我的应用程序用户界面中有一个列表,当用户点击列表中的项目时,我想打开一个弹出窗口。据我所知,Click上没有ListViewItem个事件可以帮助我解决这个问题。 SelectionChanged事件也不起作用,因为用户可以关闭弹出窗口,我希望能够再次打开它而不要求他们先在列表中选择不同的项目。

这就是我的ListView创建代码的外观,以及它的价值:

<ListView x:Name="_resultsListView"
          ItemsSource="{Binding AvailableResults}"
          SelectedItem="{Binding SelectedResult}"
          ItemContainerStyle="{StaticResource LoadResultItemStyle}"
          VirtualizingStackPanel.IsVirtualizing="True"
          Style="{DynamicResource DefaultListViewStyle}" BorderThickness="0"/>

谢谢!任何建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

HB suggested的作用是什么,虽然我发现将Events绑定到Commands的更永久的解决方案是使用一个AttachedCommandBehavior,它可以让你附上命令任何事件

<Style TargetType="{x:Type ListViewItem}">
    <Setter Property="local:CommandBehavior.Event" Value="Click" />
    <Setter Property="local:CommandBehavior.Command" Value="{Binding DataContext.MyCommand, ElementName=MyListView}" />
    <Setter Property="local:CommandBehavior.CommandParameter" Value="{Binding }" />
</Style>

答案 1 :(得分:0)

Button放入ItemTemplate(或通过ListViewItem.Template设置ItemContainerStyle)并将其绑定到命令,如果需要,可以将其设置为不可见