Dies wäre die Lösung, wenn der Befehl auf dem "GridVieModel" und nicht auf dem "RowViewModel" lebt.
<Window...
...xmlns:dg="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:GalaSoft_MvvmLight_Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras">
<dg:DataGrid x:Name="dg">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<GalaSoft_MvvmLight_Command:EventToCommand CommandParameter="{Binding SelectedItem, ElementName=dg}" Command="{Binding Path=SelectCommand, Mode=OneWay}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</dg:DataGrid>
</Window>
könnten Sie eine rowview schaffen, da auch die Reihe sein eigenes Viewmodel hat und das Mousedoubleclick-Ereignis eines Kind Element der Reihe (Container) im rowview verwenden.
Oder Sie erstellen einen Konverter für Ihre Befehlsbindung:
<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding SelectedItem, ElementName=dg, Mode=OneWay, Converter=...}"/>
Der Konverter dann würde prüfen, ob die selectedItem des gewünschten Typs ist der Befehl (So etwas wie ISelectCommandable mit einem RelayCommand Property) zurückzukehren
Ich habe das mvvm-light-Tag für Sie hinzugefügt. Das ist die offizielle Version von Laurent Bugnions MVVM Light Toolkit. – dthrasher