あなたはItemContainerStyleを持っており、それにEventSetterを指定することができます。
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<EventSetter Event="MouseLeftButtonDown" Handler="ListBoxItem_MouseLeftButtonDown" />
...
その後、のMouseLeftButtonDownのハンドラでは、「送信者が」ListBoxItemになります。
HitTestResult result = VisualTreeHelper.HitTest(myCanvas, pt);
ListBoxItem lbi = FindParent<ListBoxItem>(result.VisualHit);
public static T FindParent<T>(DependencyObject from)
where T : class
{
T result = null;
DependencyObject parent = VisualTreeHelper.GetParent(from);
if (parent is T)
result = parent as T;
else if (parent != null)
result = FindParent<T>(parent);
return result;
}
うわー、完璧な:あなたは、このメソッドを使用しない場合
また、指定した位置にビジュアルオブジェクトを見つけるためにHitTestを呼び出すことができます!しかし、代わりに{x:Type ListBoxItem}する必要があります。 – Mike
ありがとう!それを私が直した。 – decasteljau