【发布时间】:2014-08-06 18:46:04
【问题描述】:
我认为这应该相当简单,但我一直在查看我正在使用的处理程序的签名中的属性,但我没有看到任何方法来找出我在寻找什么。
我有一个相当简单的 WPF 应用程序,在同一个窗口中有两个 DataGrid 控件。我在 XAML 中定义了一个双击事件,如下所示:
<DataGrid.ItemContainerStyle>
<Style TargetType="DataGridRow">
<EventSetter
Event="MouseDoubleClick"
Handler="Row_DoubleClick"/>
</Style>
</DataGrid.ItemContainerStyle>
在后面的代码中(我们在 WPF 应用程序中这样称呼它吗?)我的 Row_DoubleClick 处理程序设置如下:
Private Sub Row_DoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
现在 sub 本身可以正常工作,并且可以很好地拾取被双击的行。但是,正如我之前提到的,我有两个 DataGrids 使用相同的 sub 进行双击事件。我意识到一条路径可能是简单地制作两个潜艇,但似乎我应该能够为两者使用一个,并且在任何一种情况下它都采取完全相同的操作,只需使用来自一个 DataGrid 或另一个的行。
它始终默认为第一个,我们称之为IncompleteGrid,如果选择了一行,即使第二个DataGrid,我们称之为CompleteGrid,是被双击的那个。我一直在调试模式下查看sender 和e 对象,但我没有看到任何可以检查双击来自哪个网格的位置或属性。
有什么想法吗?
【问题讨论】:
-
SENDER 是对被点击的网格的引用。
-
@Steve
sender显示为System.Windows.Controls.DataGridRow而不是System.Windows.Controls.DataGrid,因此我无法直接从中获取 DataGrid 对象。有没有办法从行中获取托管 DataGrid 对象?
标签: wpf vb.net wpfdatagrid