我使用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;
答案 0 :(得分:1)
您无法将grid.SelectedItem转换为DataGridRow。请参阅以下代码以获取datagrid行。
DataGridRow rowview = (DataGridRow)grid.ItemContainerGenerator.ContainerFromIndex(grid.SelectedIndex);
答案 1 :(得分:0)
也许grid.SelectedItem
不是DataGridRow
吗?
您可以将鼠标悬停在“ SelectedItem”属性上并阅读提示。
您还可以输入:
var temp = grid.SelectedItem;
,并在此行后添加一个断点以轻松确定类型。