首页 文章

找到双击ListBox ItemTemplate的哪一部分

提问于
浏览
0

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

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

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

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

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

提前致谢!

1 回答

  • 1

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

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

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

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

相关问题