Estoy usando un enfoque diferente de los que ya se sugirieron.
Solo tengo un puñado de controles ListView (dos o tres) para poder hacer lo siguiente.
ListViewItem listViewItem = e.OriginalSource as ListViewItem;
if (listViewItem == null)
{
...
}
else
{
if (firstListView.ItemContainerGenerator.IndexFromContainer(listViewItem) >= 0)
{
...
}
else if (secondListView.ItemContainerGenerator.IndexFromContainer(listViewItem) >= 0)
{
...
}
}
Esto podría ser utilizado con un bucle foreach pero si hay cientos de ListView controla para recorrer a continuación, buscar el ListView padre del ListViewItem es probablemente más eficiente (ya que la mayoría de las otras respuestas sugieren). Sin embargo, creo que mi solución es más limpia (un poco). Espero que ayude a alguien!
No hay tales problemas con MVVM. – vorrtex
Al igual que tuvo algo que ver con esto ... –