找到双击ListBox ItemTemplate的哪一部分

时间:2008-11-15 12:35:57

标签: wpf

我有一个数据绑定ListBox,它使用自定义ItemTemplate来显示我的东西。 ItemTemplate有一个包含不同元素的4x2网格。现在我希望我的用户能够获取不同的数据,具体取决于他们双击的子项 - 所以如果他们双击第0行第0列的图像,他们就会得到一个窗口。如果他们双击第1行第2列中的文本块,则会获得具有不同信息的不同类型的窗口。

当然,ListBox中的每一行信息都是唯一的。

有没有简单的方法来获取有关用户双击的网格行/列的信息?

ItemTemplate是在外部资源字典中定义的,所以我没有看到它绑定到事件本身的方法。

我是否需要制作自定义控件,或者没有它可行吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

WPF介绍RoutedEvents。在您的情况下,您只需向ListBox添加一个MouseDoubleClick事件处理程序。

<ListBox ItemsSource="{Binding Path=myData}"
         ItemTemplate="{StaticResource template}"
         MouseDoubleClick="ListBox_MouseDoubleClick">
</ListBox>

在后面的代码中,您将获得MouseButtonEventArgs类型的参数,其中包含有关原始源的信息。

MessageBox.Show(e.OriginalSource.ToString());