Esta pregunta surgió para mí en la búsqueda de una solución y las respuestas no trabajar, ya sea por la edad o mi propia implemen tación. De cualquier manera, aquí está la solución que funcionó para mí.
añadir el evento MouseDoubleClick a la cuadrícula de datos
<DataGrid x:Name="DatagridMovie"
Width="Auto"
CanUserAddRows="False"
CanUserDeleteRows="True"
IsReadOnly="true"
ItemsSource="{Binding}"
MouseDoubleClick="Row_MouseDoubleClick">
y en el método
private void Row_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
// Ensure row was clicked and not empty space
DataGridRow row = ItemsControl.ContainerFromElement((DataGrid)sender, e.OriginalSource as DependencyObject) as DataGridRow;
if (row == null) return;
...
Stuff();
}
Hasta ahora no he notado ningún problema con ella. No comparte el problema que otros tienen que significa que al hacer doble clic en un encabezado o en el espacio vacío con una fila seleccionada de antemano todavía se provocaría su ejecución.
Si utiliza el método Caliburn.Micro y MVVM, hay una forma más sencilla de lograr esto - [Obtención de información de fila después de un doble clic] (http://stackoverflow.com/questions/9487084/getting-row- información-después-de-doble clic). – Sevenate