Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我使用DataGridRow从所选行内容获取数据时,总是返回空数据_C#_Wpf_Datagrid - Fatal编程技术网

C# 当我使用DataGridRow从所选行内容获取数据时,总是返回空数据

C# 当我使用DataGridRow从所选行内容获取数据时,总是返回空数据,c#,wpf,datagrid,C#,Wpf,Datagrid,我使用WPF Metro数据网格。 当我使用DataGridRow从所选行内容获取数据时, 始终在变量“rowview”处返回空数据。 我有什么问题 这是我的密码 private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) { IInputElement element = e.MouseDevice.DirectlyOver; if (element

我使用WPF Metro数据网格。 当我使用DataGridRow从所选行内容获取数据时, 始终在变量“rowview”处返回空数据。 我有什么问题

这是我的密码

    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}" 
private void DataGrid_MouseDoubleClick(对象发送器,MouseButtonEventArgs e)
{
IIInputElement=e.MouseDevice.DirectlyOver;
if(element!=null&&element为FrameworkElement)
{
if(((FrameworkElement)元素)。父元素为DataGridCell)
{
DataGrid grid=发送方作为DataGrid;
if(grid!=null&&grid.SelectedItems!=null&&grid.SelectedItems.Count==1)
{
DataGridRow rowview=grid.SelectedItem作为DataGridRow;
如果(行视图!=null)
{
ProjectInfo addJobWindow=新的ProjectInfo();
addJobWindow.ShowDialog();
}
}
}
}
}

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

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

可能是
grid.SelectedItem
不是
DataGridRow
? 您可以通过将鼠标悬停在属性“SelectedItem”上并阅读提示进行检查

您还可以键入:

var temp = grid.SelectedItem;

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

您确定要查看rowView!=无效的您没有使用rowView吗?只需检查是否为grid.selectedItem!=无效的其余阅读下文