如何在WPF中的鼠标双击事件中获取DataGrid中的单元格值

3

我是wpf的新手。

我正在绑定下面的wpf datagrid。

<DataGrid AutoGenerateColumns="True" 
          Loaded="dataGrid1_Loaded" 
          MouseDoubleClick="dataGrid1_MouseDoubleClick" 
          Height="350" 
          Width="1200"
          Name="dataGrid1" />

我在网格中有一个名为“OID”的列,当用户双击行时,我想获取此列的值。我该如何获取它?我应该使用哪个事件?

我可以使用datagrid中的查看按钮来获取列值,但我不知道如何绑定datagrid中的按钮/链接以及如何处理它以获取列值?

谢谢 C.P

1个回答

3
首先,如果您要开发一个相当大的应用程序(超过1周的开发时间),您真的应该开始考虑MVVM
在这种架构中,您不会在代码后面使用事件处理程序。相反,您将使用命令从UI向逻辑发送信息,并使用绑定从逻辑到UI。
但是回答您目前的问题,您可以使用MouseDoubleClick事件并从那里检索数据。
    private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        var grid = sender as DataGrid;

        var cellValue = grid.SelectedValue;
    }

当用户双击特定列中的行时,这将获取该值。如果您想无论用户在哪里双击行都获取单元格的值,请使用:

grid.SelectedItem

要获取行所代表的对象,然后从中检索与您绑定列的属性。

希望这可以帮到您。


从网格的SelectedItem获取列值非常困难。 - Chhatrapati Sharma
2
@ChhatrapatiSharma 如果数据网格绑定到某个集合源,则每行是集合中的单个项目,每列是该项目中的属性。因此,特定行中列的值是该列绑定到的属性的值。grid.SelectedItem会给你所选行上的项目,因此访问所需的属性就像这样简单... - Omri Btian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接