2008-11-15 23 views
0

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

当然,信息对列表框中的每一行都是唯一的。

是否有任何简单的方法来获取有关用户双击网格的哪个行/列的信息?

ItemTemplate中在外部资源字典中定义的,所以我不认为它绑定到事件本身的方式..

我需要做一个自定义的控制,或者是这是可行的,没有它?

在此先感谢!

回答

1

WPF介绍RoutedEvents。在你的情况下,你可以简单地为你的ListBox添加一个MouseDoubleClick事件处理程序。

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

在你后面的代码将得到一个包含有关原单源信息的类型MouseButtonEventArgs的参数。

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

谢谢,这样做 - 一点工作,但像一个魅力工作! :) – 2008-11-15 23:25:03