当我使用DataGridRow从所选行内容中获取数据时,始终返回Null数据

时间:2015-03-17 01:42:20

标签: c# wpf datagrid

我使用WPF Metro数据网格。 当我使用DataGridRow从所选行内容中获取数据时, 始终在var' rowview'中返回Null数据。 我的问题是什么?

这是我的代码。

    private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        IInputElement element = e.MouseDevice.DirectlyOver;
        if (element != null && element is FrameworkElement)
        {
            if (((FrameworkElement)element).Parent is DataGridCell)
            {
                DataGrid grid = sender as DataGrid;
                if (grid != null && grid.SelectedItems != null && grid.SelectedItems.Count == 1)
                {
                    DataGridRow rowview = grid.SelectedItem as DataGridRow;
                    if (rowview != null)
                    {
                        ProjectInfo addJobWindow = new ProjectInfo();
                        addJobWindow.ShowDialog();
                    }
                }
            }
        }
    }


    <DataGrid x:Name="DgProjectInfo" ItemsSource="{Binding Projects}" 

的AutoGenerateColumns =&#34;假&#34;余量=&#34; -11,11,211,-1&#34; MouseDoubleClick =&#34; DataGrid_MouseDoubleClick&#34; IsReadOnly =&#34;真&#34;&GT;

2 个答案:

答案 0 :(得分:1)

您无法将grid.SelectedItem转换为DataGridRow。请参阅以下代码以获取datagrid行。

DataGridRow rowview = (DataGridRow)grid.ItemContainerGenerator.ContainerFromIndex(grid.SelectedIndex);

答案 1 :(得分:0)

也许grid.SelectedItem不是DataGridRow吗? 您可以将鼠标悬停在“ SelectedItem”属性上并阅读提示。

您还可以输入:

var temp = grid.SelectedItem;

,并在此行后添加一个断点以轻松确定类型。