¿Cómo puedo hacer que se active un evento o comando cuando el usuario hace clic en ListViewItem?

Tengo una lista en la interfaz de usuario de mi aplicación y me gustaría abrir una ventana emergente cuando el usuario hace clic en un elemento de la lista. Por lo que puedo decir, no hay Click eventos en ListViewItem eso me ayudara con esto. El SelectionChanged event tampoco funcionará, ya que el usuario puede cerrar la ventana emergente y me gustaría poder abrirla de nuevo sin tener que seleccionar primero un elemento diferente de la lista.

Esto es lo que mi ListView el código de creación parece, por lo que vale:

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

¡Gracias! Cualquier sugerencia sera apreciada.

preguntado el 29 de junio de 12 a las 19:06

2 Respuestas

Qué HB sugirió funciona, aunque encuentro una solución más permanente para enlazar Events a Commands es usar un Comportamiento de comando adjunto que le permitirá adjuntar un comando a casi cualquier evento

<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>

contestado el 23 de mayo de 17 a las 11:05

Poner un Button en la ItemTemplate (o ListViewItem.Template establecer a través de la ItemContainerStyle) y vincúlelo a un comando, puede diseñarlo para que sea invisible si es necesario.

Respondido el 29 de junio de 12 a las 19:06

Un problema con esto es que cuando hago clic en el botón, el elemento no se selecciona. ¿Hay alguna manera de hacer que el botón active su comando y también se seleccione ListViewItem? - Shawn


@Greg Puedes usar un disparador para configurar IsSelected basados en IsKeyboardFocusWithin. Vea mi respuesta aqui para más detalles - Rachel

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.