Это потому, что ваши ListViewItems вашего ListView поглотят ваши события LeftClick и преобразуют их в красивые события SelectionChanged.Так как ListViewItems не будет отвечать на MiddleClick, это будет работать как ожидалось.
Возможно, вы захотите получить «впереди» этого клика, обрабатывая соответствующий предварительный эквивалент события.
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<EventSetter Event="MouseDoubleClick" Handler="OnItemDoubleClick"/>
</Style>
</ListView.ItemContainerStyle>
И вызовите команду в обработчике:
private void OnItemDoubleClick(object sender, MouseButtonEventArgs e)
{
OpenSOACommand.Execute(null, this);
}