我有一个数据绑定ListBox,它使用自定义ItemTemplate来显示我的东西。 ItemTemplate有一个包含不同元素的4x2网格。现在我希望我的用户能够获取不同的数据,具体取决于他们双击的子项 - 所以如果他们双击第0行第0列的图像,他们就会得到一个窗口。如果他们双击第1行第2列中的文本块,则会获得具有不同信息的不同类型的窗口。
当然,ListBox中的每一行信息都是唯一的。
有没有简单的方法来获取有关用户双击的网格行/列的信息?
ItemTemplate是在外部资源字典中定义的,所以我没有看到它绑定到事件本身的方法。
我是否需要制作自定义控件,或者没有它可行吗?
提前致谢!
答案 0 :(得分:1)
WPF介绍RoutedEvents。在您的情况下,您只需向ListBox添加一个MouseDoubleClick事件处理程序。
<ListBox ItemsSource="{Binding Path=myData}"
ItemTemplate="{StaticResource template}"
MouseDoubleClick="ListBox_MouseDoubleClick">
</ListBox>
在后面的代码中,您将获得MouseButtonEventArgs类型的参数,其中包含有关原始源的信息。
MessageBox.Show(e.OriginalSource.ToString());