GridViewを使用してWindows8Metroアプリケーション(C#、XAML)を構築していますが、ユーザーがクリックしたGridViewItemの近くにポップアップを表示したいと思います。クリックイベント引数を介してGridViewItemUIElementを取得し、その座標を使用してポップアップを配置する場所を決定することを計画していました。
ただし、クリックされた実際のGridViewItemUIElementへの参照を取得する方法はまだ見つかりません。以下で試したイベントは、実際のUIElementではなく、EventArgsを介してDataContextのみを公開しているようです。
object sender // is the GridView
ItemClickEventArgs.ClickedItem // is the DataContext of the GridViewItem
ItemClickEventArgs.OriginalSource // is the GridView
SelectionChangedEventArgs.OriginalSource // is null
SelectionChangedEventArgs.AddedItems.First() // is the DataContext of the GridViewItem
重要な場合、私のGridView.ItemSourceはCollectionViewSourceであり、そのSourceはビューモデルのコレクションにバインドされています。
私が見落としたイベントを通してクリックされたGridViewItemを取得することは可能ですか?そうでない場合、それを回避するためにどの角度を調べる必要がありますか?少なくともPointerPressedイベントを介してGridViewに関連するクリック座標を取得し、その方法でアイテムを見つけるために何ができるかを確認できますが、実際にはそのルートをたどる必要がないことを望んでいます。