ダブルクリックされた ListView の項目を取得する方法

データバインディングを使って ListView にデータを表示した状態で、ListView の項目がダブルクリックされたとき、その項目を取得するには ListViewItem の MouseDoubleClick イベントをハンドルすればいい。イベントハンドラの設定は、スタイルを使ってまとめて設定すると楽。

<ListView ItemsSource="{Binding Path=People}">
    <ListView.Resources>
        <Style TargetType="{x:Type ListViewItem}">
            <EventSetter Event="MouseDoubleClick" Handler="ListView_MouseDoubleClick"/>
        </Style>
    </ListView.Resources>

    <!-- ビューは省略 -->
</ListView>
private void ListView_MouseDoubleClick(object sender, MouseEventArgs e)
{
    // sender がダブルクリックされた項目
    ListViewItem targetItem = (ListViewItem)sender;

    // データバインディングを使っているなら、
    // DataContext からデータを取得できる
    Person p = (Person)targetItem.DataContext;
}